ฉันอ่านคำแนะนำ OOP ของออราเคิลและฉันได้พบกับคำอธิบายนี้:
วัตถุในโลกแห่งความเป็นจริงแบ่งเป็นสองลักษณะ: พวกเขาทั้งหมดมีสถานะและพฤติกรรม สุนัขมีสถานะ (ชื่อ, สี, สายพันธุ์, หิว) และพฤติกรรม (เห่า, ดึง, หางกระดิก) วัตถุซอฟต์แวร์นั้นมีแนวคิดคล้ายกับวัตถุในโลกแห่งความเป็นจริง: วัตถุเหล่านั้นประกอบด้วยสถานะและพฤติกรรมที่เกี่ยวข้องด้วย
ปัญหาของฉันกับเนื้อเรื่องนั้นคือเมื่ออธิบายสถานะการผสมของคุณสมบัติมีเช่นกัน ตัวอย่างเช่นชื่อและสีของสุนัขเป็นคุณลักษณะของมันในขณะที่มันกำลังหิวหรือเป็นครั้งที่สามคือสถานะของมัน
ดังนั้นในความคิดของฉันมันถูกต้องมากขึ้นในการทำลายลักษณะของวัตถุที่เป็นสามส่วนแอตทริบิวต์ของรัฐและพฤติกรรม
แน่นอนว่าเมื่อแปลสิ่งนี้เป็นภาษาการเขียนโปรแกรมฉันสามารถเห็นได้ว่าพาร์ติชันแบบสามโฟลด์กลายเป็นแบบสองเท่าเนื่องจากทั้งแอ็ตทริบิวต์และสถานะจะถูกจัดเก็บลงในฟิลด์ / ตัวแปรในขณะที่พฤติกรรม
แต่การพูดในเชิงแนวคิดมันสมเหตุสมผลมากกว่าที่จะแยก 3 สิ่งออกจากกัน
นี่คืออีกตัวอย่าง: พิจารณาโคมไฟ การบอกว่าทั้งขนาดของหลอดไฟและการเปิดหรือไม่นั้นสถานะเป็นสิ่งที่ยืดออกในความคิดของฉัน ขนาดหลอดไฟเป็นคุณสมบัติไม่ใช่สถานะขณะที่กำลังเปิดหรือปิดเป็นสถานะ
หรือฉันคิดถึงอะไรบางอย่าง?