รูทรวมเป็นชื่อที่ซับซ้อนสำหรับแนวคิดง่าย ๆ
ความคิดทั่วไป
แผนภาพคลาสที่ได้รับการออกแบบมาอย่างดีห่อหุ้มสิ่งที่อยู่ภายใน aggregate root
จุดผ่านที่คุณเข้าถึงโครงสร้างนี้จะเรียกว่า
Internals ของการแก้ปัญหาของคุณอาจจะมีความซับซ้อนมาก root.doSomethingWhichHasBusinessMeaning()
แต่ผู้ใช้ลำดับชั้นนี้ก็จะใช้
ตัวอย่าง
ตรวจสอบลำดับชั้นของคลาสที่เรียบง่ายนี้
คุณต้องการขี่รถของคุณอย่างไร? เลือก API ที่ดีกว่า
ตัวเลือก A (ใช้งานได้):
car.ride();
ตัวเลือก B (ผู้ใช้มีสิทธิ์เข้าใช้คลาสภายใน):
if(car.getTires().getUsageLevel()< Car.ACCEPTABLE_TIRE_USAGE)
for (Wheel w: car:getWheels()){
w.spin();
}
}
หากคุณคิดว่าตัวเลือก A นั้นดีกว่าแสดงความยินดี aggregate root
คุณจะได้รับเหตุผลหลักที่อยู่เบื้องหลัง
รากสรุปรวมหลายคลาส คุณสามารถจัดการลำดับชั้นทั้งหมดผ่านวัตถุหลักเท่านั้น