คำว่า ' สถานะ ' อาจถูกนำมาใช้ในประสาทสัมผัสต่าง ๆ ซึ่งอาจไม่ใช่ทั้งหมดที่ไวต่อคำจำกัดความที่แม่นยำ ดังนั้นจึงเป็นเรื่องสำคัญที่คุณจะต้องใส่คำจำกัดความไว้ในกระดาษเพื่อให้ชัดเจนว่าคุณใช้คำศัพท์อย่างไร ในเรื่องต่อไปนี้ฉันไม่ได้ให้คำจำกัดความที่เป็นเอกลักษณ์ของสถานะของวัตถุ แต่พยายามที่จะร่างวิธีคิดต่าง ๆ จำนวนมากซึ่งอาจเหมาะสมในบริบทที่แตกต่างกัน
อย่างไรก็ตามอันดับแรกคุณต้องคิดว่าคุณหมายถึงอะไรโดย ' วัตถุ ': คุณกำลังคิดเกี่ยวกับวัตถุทางแนวคิดคือสิ่งที่คุณพยายามทำแบบจำลองหรือสิ่งที่เป็นตัวอย่างของคลาสในโปรแกรมเฉพาะ บางทีคุณอาจต้องการคิดถึงสถานะของตัวแปรที่อาจต่างกันในเวลาที่อ้างถึงออบเจ็กต์ที่แตกต่างกันหรือเกี่ยวกับระบบซึ่งอาจเข้าถึงได้ผ่านส่วนต่อประสานผู้ใช้บางตัว
ส่วนหนึ่งของความยากลำบากในการกำหนดสถานะของวัตถุใน OOP คือเมื่อเราจำลองเอนทิตีในภาษาเฉพาะภาษานั้นมักจะไม่อนุญาตให้เราแยกแยะคุณลักษณะของวัตถุที่เป็นแนวคิดของเอนทิตีเดียวกันจากคนอื่นที่ไม่ใช่ ตัวอย่างเช่นรายการที่เชื่อมโยงของCar
จะประกอบด้วยจำนวนLink
-objects ซึ่งมีพอยน์เตอร์ไปยังหน้าถัดไป (และอาจจะก่อนหน้านี้) Link
แม้ว่าแนวคิดในรายการจะเป็นวัตถุเดียว ลิงก์อาจฝังอยู่ด้วยCar
--objects หรือมีตัวชี้ไปยังพวกเขา แต่ในกรณีนี้วัตถุที่เชื่อมโยงจะถูกแยกแนวคิดมากกว่าส่วนหนึ่งของรายการ; ในรายการการเปลี่ยนแปลงล่าสุดไม่ว่าจะเป็นการเปลี่ยนแปลงใด ๆ อาจมีอยู่ในรายการและถือเป็นส่วนหนึ่งของการเปลี่ยนแปลง ในกรณีต่าง ๆ เหล่านี้เราต้องตัดสินใจว่าเราจะพิจารณาสถานะของวัตถุหนึ่ง ๆ เพื่อรวมว่าของวัตถุที่เชื่อมโยงหรือไม่ นอกจากนี้ a Car
อาจมีลิงก์ไปยังRegistering_Authority
- เราอาจไม่พิจารณาสถานะของรถยนต์ที่จะเปลี่ยนเมื่อหน่วยงานที่ลงทะเบียนเปลี่ยน URL ของเว็บไซต์ เว้นแต่ว่าภาษาที่ใช้งานจะช่วยให้เราแยกแยะความแตกต่างของลิงค์มันจะไม่สามารถสร้างนิยามทั่วไปของสถานะของวัตถุในแง่ของภาษาเพียงอย่างเดียว
ว่า ' ภายนอก ' หรือ ' ทำงาน ' รัฐอาจจะหมายถึง 'ว่ามันจะทำงาน' ee.g. วิธีตอบสนองต่อการเรียกใช้เมธอดหรือกับส่วนต่อประสานผู้ใช้ สำหรับวัตถุเป็นคลาสอินสแตนซ์คำจำกัดความนี้ขึ้นอยู่กับชนิดของวัตถุที่ถูกมองว่าเป็นของ: เห็นเป็นCircle
สีของColoured_Circle
มองไม่เห็นและด้วยเหตุนี้ไม่เกี่ยวข้องกับรัฐ ปัญหานี้คือ 'วิธีการตอบสนอง' อาจจำเป็นต้องกำหนดในแง่ของค่าที่ส่งคืนและ 'ค่า' เหล่านี้อาจเป็นสถานะของวัตถุอื่น ๆ วิธีหนึ่งในการทำให้เป็นระเบียบนี้คือการพูดว่าสองสถานะของวัตถุนั้นเหมือนกันถ้าการประมวลผลในอนาคตที่เป็นไปได้ทั้งหมดของระบบบางระบบซึ่งถูกฝังอยู่ส่งผลให้มีการแมปเดียวกันจากอินพุตไปยังระบบนั้น ระบบการปิดล้อมนี้อาจจำเป็นต้องเป็นระบบที่มีในตัวเองสามารถดำเนินการได้โดยไม่ขึ้นกับสภาพแวดล้อมของระบบ ในทางกลับกันใคร ๆ ก็ยอมให้มันมีขนาดเล็กเท่ากับวัตถุที่สงสัย ไม่ว่าในกรณีใดวิธีการทางคณิตศาสตร์จะกำหนดสถานะเป็นคลาสที่เทียบเท่า
ว่า ' ภายใน ' รัฐอาจจะหมายถึงสถานะของการเป็นตัวแทนที่ ความพยายามครั้งแรกดูเหมือนจะเป็นวงกลม แต่อาจเป็นประโยชน์: 'สถานะภายในของวัตถุคือสถานะของสมาชิก' ที่นี่เราจำเป็นต้องดูแลเพื่อแยกแยะแง่มุมที่สำคัญของการเป็นตัวแทนจากสิ่งที่ไม่มีนัยสำคัญ: ในระดับต่ำสุดการเป็นตัวแทนของวัตถุอาจรวมถึงที่อยู่ของวัตถุอื่น ๆ แต่มันไม่น่าจะเป็นประโยชน์ในการพิจารณาการเปลี่ยนแปลงที่อยู่ดังกล่าว เป็นการเปลี่ยนแปลงสถานะ ในทางกลับกันการเปลี่ยนแปลงสถานะของแคชสำหรับผลลัพธ์ของแบบสอบถามในขณะที่มันไม่สร้างความแตกต่างให้กับสถานะการทำงาน (ตามที่อธิบายข้างต้น) จะมีความสำคัญเมื่อพิจารณาการทดสอบประสิทธิภาพ