ในหนึ่งในเสียงต่อต้านโอโอพีหลายเรื่องที่ cat-v.orgฉันพบข้อความโดยโจอาร์มสตรองยกการคัดค้านหลายรูปแบบกับ OOP ซึ่งหนึ่งในนั้นคือ:
คัดค้าน 4 - วัตถุมีสถานะส่วนตัว
รัฐเป็นรากฐานของความชั่วร้ายทั้งหมด ในฟังก์ชั่นเฉพาะที่มีผลข้างเคียงควรหลีกเลี่ยง
ในขณะที่สถานะในการเขียนโปรแกรมภาษาไม่พึงประสงค์ในรัฐโลกแห่งความจริงมากมาย ฉันสนใจสถานะบัญชีธนาคารของฉันเป็นอย่างมากและเมื่อฉันฝากหรือถอนเงินจากธนาคารฉันคาดว่าสถานะบัญชีธนาคารของฉันจะได้รับการอัปเดตอย่างถูกต้อง
เมื่อพิจารณาจากสถานะที่มีอยู่ในโลกแห่งความเป็นจริงสิ่งอำนวยความสะดวกที่ควรใช้ภาษาโปรแกรมสำหรับการจัดการกับรัฐ?
OOPL พูดว่า "ซ่อนสถานะจากโปรแกรมเมอร์" สถานะถูกซ่อนและมองเห็นได้ผ่านฟังก์ชั่นการเข้าถึงเท่านั้น ภาษาโปรแกรมทั่วไป (C, Pascal) บอกว่าการมองเห็นของตัวแปรสถานะถูกควบคุมโดยกฎขอบเขตของภาษา ภาษาที่ประกาศอย่างบริสุทธิ์บอกว่าไม่มีรัฐ สถานะโกลบอลของระบบนั้นจะถูกนำไปใช้กับทุกฟังก์ชั่น กลไกเช่น monads (สำหรับ FPLs) และ DCGs (ภาษาลอจิก) ถูกใช้เพื่อซ่อนสถานะจากโปรแกรมเมอร์ดังนั้นพวกเขาจึงสามารถเขียนโปรแกรม“ ราวกับว่ารัฐไม่สำคัญ” แต่มีการเข้าถึงสถานะของระบบได้อย่างเต็มที่หากจำเป็น
ตัวเลือก“ ซ่อนสถานะจากโปรแกรมเมอร์” ที่เลือกโดย OOPL เป็นตัวเลือกที่แย่ที่สุด แทนที่จะเปิดเผยสถานะและพยายามหาวิธีที่จะลดความน่ารำคาญของรัฐพวกเขาก็ซ่อนมันออกไป
นี่หมายถึงอะไรกันแน่? ฉันมีประสบการณ์น้อยในขั้นตอนหรือขั้นตอนที่น้อยมากซึ่งส่วนใหญ่เป็น OOP ดังนั้นอาจอธิบายได้ว่าฉันไม่คุ้นเคยกับเรื่องนี้อย่างไร และจากมุมมองที่ทันสมัยกว่าตอนนี้ที่ฮิสทีเรียเชิงวัตถุส่วนใหญ่ผ่าน (อย่างน้อยที่สุดเท่าที่ฉันสามารถบอกได้) พวกคุณคิดว่าเนื้อเรื่องนั้นถูกต้องหรือเกี่ยวข้องอย่างไร
ขอบคุณสำหรับความช่วยเหลือของคุณ.