Xây dựng các class như mộ hình UML như hình sau
Lớp SingleTable biểu diễn cho 1 bảng của một nhà hàng
Yêu cầu: Cài đặt lớp SingleTable như trong mô hình UML ở phía trên lưu ý các phương thức Get, Set trong class SingleTable nên sử dụng Properties
Tại nhà hàng, các khách hàng có thể ngồi tại các bàn có thể kết hợp 2 bàn đơn được ghép lại với nhau. Bạn sẽ phải viết 1 lớp CombinedTable để biểu diễn kết quả hợp bởi 2 SingleTable. Dựa theo theo tắc như sau:
Tạo lớp CombineTable có mối quan hệ has-a với class SingleTable như hình ở trên
Giả sử các đối tượng SingleTable t1, t2, t3 được khởi tạo như sau
| Statement | Giá trị trả về | Mô tả Class |
| CombinedTable c1 = new CombinedTable(t1, t2) | Tạo lớp CombinedTable được kết hợp bởi 2 đối tượng SingleTable | |
| c1.CanSeat(9) | True | Vì c1 có 2 bảng đơn có tổng là 12 seat, c1 có thể ngồi ít nhất là 10 seat |
| c1.CanSeat(11) | False | c1 không thể ngồi 11 người |
| c1.GetDerirability() | 65.0 | Bởi vì c1 có 2 bảng đơn cùng height, derirability là giá trị trung bình của 60.0 và 70.0 |
| CombinedTable c2 = new CombinedTable(t2, t3) | CombinedTable được kết hợp bởi 2 đối tượng SingleTable t2, t3 | |
| c2.CanSeat(18) | True | Vì c2 có 2 bảng đơn có tổng là 20 seat, c2 có thể ngồi ít nhất là 18 seat |
| c2.GetDeriability() | 62.5 | Vì 2 bảng đơn của c2 không cùng height, desirability là trung bình của 70.0 và 75.0 trừ đi 10 |
| t2.SetViewQuality(80) | Thay đổi view quality của bảng t2 là 80 | |
| c2.GetDerirability() | 67.5 | Vì view quality của t2 đã thay đổi, derirability của c2 cũng thay đổi |