Trong việc thực hiện trước đó, chúng tôi giữ một tham chiếu đến từng cấp dưới trong bộ sưu tập trong mỗi lớp Boss. Điều này có nghĩa rằng bạn có thể di chuyển xuống các chuỗi từ tổng thống cho bất kỳ nhân viên, nhưng không có cách nào để di chuyển trở lên để tìm ra những người giám sát của nhân viên là. Điều này có thể dễ dàng khắc phục bằng cách cung cấp một nhà xây dựng cho mỗi lớp con AbstractEmployee bao gồm một tham chiếu đến nút cha.
Sau đó, bạn có thể nhanh chóng đi lên cây để sản xuất một chuỗi báo cáo.
Hậu quả của các mẫu tổng hợp
Các mẫu hợp cho phép bạn xác định một hệ thống phân cấp lớp của các đối tượng đơn giản
và các đối tượng tổng hợp phức tạp hơn vì vậy chúng xuất hiện để được giống cho khách hàng
chương trình. Bởi vì đơn giản này, khách hàng có thể được đơn giản mà nhiều, vì
các nút lá được xử lý trong cùng một cách.
Các mô hình hợp cũng làm cho nó dễ dàng cho bạn để thêm các loại mới của
các thành phần vào bộ sưu tập của bạn miễn là họ ủng hộ một chương trình tương tự
giao diện. Mặt khác, điều này có bất lợi làm cho hệ thống của bạn
quá chung chung. Bạn có thể tìm thấy nó khó khăn hơn để hạn chế các lớp học nhất định, nơi này
thường sẽ được mong muốn.
A Simple composite
Mục đích của mô hình Composite là để cho phép bạn xây dựng một cây vari
lớp học độc hại có liên quan, mặc dù một số có đặc tính khác nhau hơn so với những người khác và
một số là lá mà không có con. Tuy nhiên, đối với những trường hợp rất đơn giản, bạn
có thể sử dụng đôi khi chỉ là một lớp duy nhất rằng cuộc triển lãm cả phụ huynh và hành vi lá.
Trong ví dụ SimpleComposite, chúng tôi tạo ra một lớp Employee luôn con
địa bao gồm các cấp dưới ArrayList. Bộ sưu tập này của nhân viên hoặc sẽ
từ getChild và loại bỏ các phương pháp. Trong trường hợp đơn giản này, chúng ta không làm tăng
các lỗi và luôn luôn cho phép các nút lá được đẩy mạnh để có các nút con. Trong khác
từ, chúng ta luôn luôn cho phép thực hiện các phương thức add.
Trong khi bạn có thể không coi xúc tiến tự động này là một bất lợi, trong
các hệ thống mà có một số lượng rất lớn của lá, nó là lãng phí để giữ một
Bộ sưu tập khởi và không sử dụng trong mỗi lá nút. Trong trường hợp có rel
atively vài nút lá, đây không phải là một vấn đề nghiêm trọng.
Composites trong NET
Trong .NET, bạn sẽ thấy rằng các lớp đối tượng Node chúng tôi sử dụng để cư Tree
View là trên thực tế chỉ là một mô hình hợp đơn giản như vậy . Bạn cũng sẽ thấy rằng các
hợp mô tả các hệ thống cấp bậc của Form, Frame, và điều khiển trong bất kỳ người sử dụng
giao diện chương trình. Tương tự như vậy, các thanh công cụ là các thùng chứa, và mỗi thể chứa bất kỳ
số lượng các container khác.
Sau đó Bất kỳ chứa có thể chứa các thành phần như các nút, hộp kiểm tra,
và các hộp, mỗi trong số đó là một nút lá mà không thể có con nữa.
Họ cũng có thể chứa các hộp thoại liệt kê và lưới có thể được coi là nút lá hoặc
có thể chứa các thành phần đồ họa hơn nữa. Bạn có thể đi bộ xuống Com
cây posite sử dụng bộ sưu tập Controls.
Các vấn đề thực hiện khác
đặt hàng linh kiện. Trong một số chương trình, thứ tự của các thành phần có thể
là quan trọng. Nếu tự đó là bằng cách nào đó khác với thứ tự mà chúng
đã được thêm vào các phụ huynh, thì phụ huynh phải làm thêm công việc để trở lại
chúng theo thứ tự đúng. Ví dụ, bạn có thể sắp xếp các bộ sưu tập ban đầu
theo thứ tự abc và trả về một bộ sưu tập được sắp xếp mới.
Kết quả Caching. Nếu bạn thường xuyên yêu cầu dữ liệu phải được tính toán từ một
loạt các thành phần con, như chúng ta đã làm ở đây với mức lương, có thể là thuận lợi
để cache các kết quả tính toán trong các phụ huynh. Tuy nhiên, trừ khi việc tính toán
tương đối chuyên sâu và bạn hoàn toàn chắc chắn rằng các dữ liệu cơ bản đã không
thay đổi, điều này có thể không có giá trị các nỗ lực.
Tư tưởng Câu hỏi
1. Một đội bóng chày có thể được coi là một tổng hợp của cá nhân cầu thủ của mình. Làm thế nào
bạn có thể sử dụng một hỗn hợp để đại diện cho hiệu suất cá nhân và đồng đội?
Mance bởi mục thực phẩm. Đề nghị làm thế nào một hỗn hợp có thể hữu ích.
Các chương trình trên đĩa CD-ROM
composite lãm cây composite hỗn
hợp sử dụng cả composite DlinkComposite
liên kết con và liên kết cha mẹ
đơn giản Composite của cùng composite SimpleComposite
cây nhân viên cho phép
bất cứ nhân viên để di chuyển từ
lá đến nút
đang được dịch, vui lòng đợi..
