มีหลายด้านที่ต้องพิจารณาในการออกแบบเช่น:
- การพึ่งพาโครงสร้าง
- ความสัมพันธ์ของความเป็นเจ้าของ (iecomposition vs. การเชื่อมโยงอื่น ๆ )
- การนำทางที่ต้องการ
การพึ่งพาโครงสร้างระหว่างคลาส:
หากคุณมุ่งที่จะนำคลาสคอมโพเนนต์มาใช้ซ้ำคุณควรหลีกเลี่ยงการพึ่งพาที่ไม่จำเป็นและหลีกเลี่ยงโครงสร้างวงกลมแบบปิดดังกล่าว
อย่างไรก็ตามบางครั้งสองคลาสนั้นมีการเชื่อมโยงกันอย่างมากในเชิงแนวคิด ในกรณีนี้การหลีกเลี่ยงการพึ่งพาไม่ใช่ตัวเลือกจริง ตัวอย่าง: ต้นไม้และ leafes หรืออื่น ๆ โดยทั่วไปคอมโพสิตและส่วนประกอบ
กรรมสิทธิ์ในวัตถุ:
วัตถุหนึ่งเป็นเจ้าของวัตถุอื่นหรือไม่ หรือระบุไว้เป็นอย่างอื่น: หากวัตถุหนึ่งถูกทำลายวัตถุอื่นจะถูกทำลายเช่นกัน?
หัวข้อนี้ได้รับการกล่าวถึงอย่างลึกซึ้งโดย Snowman ดังนั้นฉันจะไม่พูดเรื่องนี้
ความต้องการการนำทางระหว่างวัตถุ:
ปัญหาล่าสุดคือความต้องการการนำทาง ลองมาตัวอย่างที่ชื่นชอบการออกแบบรูปแบบคอมโพสิตของแก๊งสี่
แกมมา & อัล พูดถึงอย่างชัดเจนถึงความจำเป็นที่จะต้องมีการอ้างอิงผู้ปกครองอย่างชัดเจน: " การคงการอ้างอิงจากส่วนประกอบของเด็กถึงผู้ปกครองสามารถทำให้การเดินทางผ่านและการจัดการโครงสร้างคอมโพสิตง่ายขึ้น " แน่นอนว่าคุณสามารถจินตนาการการสำรวจเส้นทางบนลงล่าง สามารถชะลอการดำเนินการอย่างมีนัยสำคัญและในลักษณะที่ชี้แจง การอ้างอิงโดยตรงถึงแม้จะเป็นวงกลมก็สามารถทำให้การจัดการคอมโพสิตของคุณง่ายขึ้น
ตัวอย่างอาจเป็นรูปแบบกราฟิกของระบบอิเล็กทรอนิกส์ โครงสร้างคอมโพสิตอาจเป็นตัวแทนของบอร์ดอิเล็กทรอนิกส์วงจรองค์ประกอบ ในการแสดงและจัดการโมเดลคุณต้องมีพร็อกซีเชิงเรขาคณิตในมุมมอง GUI แน่นอนว่ามันง่ายกว่ามากในการนำทางจากองค์ประกอบ GUI ที่เลือกโดยผู้ใช้ไปยังส่วนประกอบเพื่อค้นหาว่าใครคือพาเรนต์และมีองค์ประกอบที่เกี่ยวข้องกับพี่ชาย / น้องสาวมากกว่าเริ่มค้นหาจากบนลงล่าง
แน่นอนว่า Gamma & al ชี้ให้เห็นว่าคุณต้องรับรองความถูกต้องของความสัมพันธ์แบบวงกลม นี่อาจเป็นเรื่องยุ่งยากเนื่องจากคำถาม SO ที่คุณอ้างถึงได้แสดงไว้ แต่มันจัดการได้อย่างสมบูรณ์แบบและปลอดภัย
ข้อสรุป
ความต้องการในการนำทางจะไม่ถูกลดทอนลง ไม่มีเหตุผลใดที่ UML ได้ระบุไว้อย่างชัดเจนในการสร้างแบบจำลอง และใช่มีสถานการณ์ที่สมบูรณ์แบบที่จำเป็นต้องมีการอ้างอิงแบบวงกลม
จุดเดียวคือบางครั้งคนมักจะไปในทิศทางดังกล่าวอย่างรวดเร็ว ดังนั้นจึงควรพิจารณาทั้งสามด้านที่เกี่ยวข้องก่อนตัดสินใจจะทำหรือไม่