Design Pattern | Composite Pattern
Các tòa nhà bao gồm các phòng, mặc dù các tòa nhà và phòng có chức năng hơi khác nhau. về cơ bản chúng ta coi nó là cấu trúc chung của nhà ở. Bạn đều có thể vào ra khỏi một tòa nhà hoặc một căn phòng, và cả hai đều có thể dùng để lưu trữ đồ đạc. Vì vậy, dù có thiết kế khác nhau, nhưng chúng có thể được xử lý cùng theo một cách thống nhất. The Composite Pattern đạt được 2 mục tiêu, để soạn các cấu trúc lồng nhau của 1 đối tượng theo một cách thống nhất, các mô hình theo các thiết kế cơ bản này. Một giao diện là Component đóng vai trò là superclass cho một tập hợp các class để tất cả chúng có thể được xử lý đồng nhất, điều này được thực hiện bằng polymorphism. Tất cả các lớp thực hiện phù hợp với 1 giao diện, một abstract superclass có thể được sử dụng để đặt giao diện vì cả hai đều cho phép polymorphism (đa hình). Nhưng chúng ta sẽ tập trung vào việc sử dụng interface. Lớp composite được sử dụng để tổng hợp bất kỳ lớp nào implement component interface, lớp composite sẽ cho phép bạ