am I going down an inherintly bad path
ฉันคิดว่าในตัวอย่างที่สองของคุณ (คลาสย่อยของผู้ปฏิบัติงาน) คุณเป็นอย่างแน่นอน คุณได้แมปคลาสย่อยแต่ละรายการเข้ากับสถานะที่ระบุในซูเปอร์คลาส ดังนั้นตอนนี้ทุกครั้งที่คุณต้องการเพิ่มสถานะให้กับ class super คุณจะต้องทำการเปลี่ยนแปลงในสามตำแหน่ง (เพิ่ม state เป็น super class เพิ่มคลาสย่อยใหม่และเปลี่ยน Constructor ของ Class ที่ได้รับมาเพื่อเพิ่มคลาสย่อยลงในรายการ )
การใช้คลาสที่ซ้อนกันเพื่อเข้าถึงสมาชิกส่วนตัวดูเหมือนจะเป็นการใช้ที่ถูกต้อง (ฉันไม่เคยทำแบบส่วนตัว) แต่กรณีเฉพาะของคุณไม่ทำงานที่นี่
สำหรับตัวอย่างส่วนของร่างกาย เนื่องจากคลาสที่ซ้อนกันทั้งหมดเป็นแบบสาธารณะคุณจึงไม่ค่อยทำอะไรมากยกเว้นการกำหนดเนมสเปซ หากคลาสเหล่านี้เติบโตเพื่อรวมฟังก์ชันการทำงานที่มากขึ้นคุณอาจพบว่าคลาสที่ซ้อนกันเพียงถ่วงอินเตอร์เฟสและคุณกำลังลอดผ่านโค้ดเพื่อค้นหาสิ่งที่เฉพาะเจาะจง ฉันยังสังเกตเห็นว่าเนื่องจากคุณมีคลาสที่ซ้อนกันคุณจะถูกบังคับให้เลิกการตั้งชื่อแบบแผนและตั้งชื่อคลาสของคุณด้วยตัวพิมพ์เล็ก (อาจเป็นตัวเลือก) แต่ข้อโต้แย้งเหล่านี้มีเพียงผิวเผินมากกว่าสิ่งใดผิดจริง
แน่นอนว่าคุณจำเป็นต้องใช้แขนปลดออก จากนั้นการสร้างแขนด้วยการทำสิ่งต่อไปนี้ทำให้เกิดความสับสนเพราะไม่มีร่างกาย / ลำตัว / ด้านข้าง (สังเกตเห็นปลอกที่สับสนด้วย)
arm newArm = new Body.torso.side.arm("");