4
วิธีหลีกเลี่ยง“ ผู้จัดการ” ในรหัสของฉัน
คำถามนี้ถูกโยกย้ายจาก Code Exchange Stack Stack เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 6 ปีที่แล้ว ขณะนี้ฉันกำลังออกแบบระบบ Entityของฉันใหม่สำหรับ C ++ และฉันมีผู้จัดการจำนวนมาก ในการออกแบบของฉันฉันมีชั้นเรียนเหล่านี้เพื่อผูกห้องสมุดของฉันเข้าด้วยกัน ฉันได้ยินสิ่งเลวร้ายมากมายเมื่อพูดถึงคลาส "ผู้จัดการ" บางทีฉันอาจไม่ได้ตั้งชื่อชั้นเรียนของฉันอย่างเหมาะสม อย่างไรก็ตามฉันไม่รู้ว่าจะตั้งชื่อพวกเขาอย่างไร ผู้จัดการส่วนใหญ่ในห้องสมุดของฉันประกอบด้วยชั้นเรียนเหล่านี้ (แม้ว่ามันจะแตกต่างกันเล็กน้อย): คอนเทนเนอร์ - คอนเทนเนอร์สำหรับวัตถุในตัวจัดการ คุณสมบัติ - คุณลักษณะสำหรับวัตถุในผู้จัดการ ในการออกแบบใหม่สำหรับห้องสมุดของฉันฉันมีชั้นเรียนเฉพาะเหล่านี้เพื่อผูกห้องสมุดของฉันเข้าด้วยกัน ComponentManager - จัดการส่วนประกอบใน Entity System ComponentContainer ComponentAttributes ฉาก * - อ้างอิงถึงฉาก (ดูด้านล่าง) SystemManager - จัดการระบบในระบบองค์กร SystemContainer ฉาก * …