COMPOSITE PATTERN LÀ GÌ

  -  
1. Composite Pattern là gì?

Composite Pattern là một trong những mẫu cấu trúc (Structural Pattern).

Bạn đang xem: Composite pattern là gì

Composite Pattern được cho phép xúc tiến với tất cả những đối tượng tương tự nhau giống như là các đối tượng đối kháng hoặc collections.

Ví dụ: Đối tượng File sẽ là 1 trong những đối tượng 1-1 giả dụ bên phía trong nó không có tệp tin làm sao khác, tuy thế đối tượng người tiêu dùng tệp tin sẽ tiến hành đối xử y như 1 collections trường hợp bên phía trong nó lại có những File không giống.

lúc tính kích cỡ của File ta sẽ bắt buộc tính kích cỡ của toàn bộ các file bên trong nó.

2. Composite Pattern UML Diagram.

*

Component (Thành phần):

Knhì báo interface hoặc abstract chung cho các yếu tố đối tượng người tiêu dùng.Chứa các method thao tác làm việc tầm thường của các nguyên tố đối tượng người tiêu dùng.

Xem thêm: Thân Nhiệt Là Gì - Thân Nhiệt Thấp Như Thế Nào Mới Cần Đi Bệnh Viện

Leaf (Lá):

Biểu diễn những đối tượng người sử dụng lá (ko bao gồm con) trong yếu tắc đối tượng người sử dụng.

Composite (Hỗn hợp):

Định nghĩa một thao tác làm việc cho các nhân tố gồm thành phần nhỏ.Lưu trữ nhân tố con.Thực thi sự quản lý các thành phần con của hình ảnh Component.3. lấy ví dụ.

1 project là 1 trong những tập hòa hợp nhiều tác vụ (Task) con, mặt khác bạn dạng thân project cũng là một trong những task béo.

Ta yêu cầu tính tống thời hạn của project thông qua thời gian của những task nhỏ.

Xem thêm: Đừng Cúi Đầu Vương Miện Sẽ Rơi, Đừng Cúi Đầu, Vương Miện Sẽ Rơi Xuống

*

Code ví dụ:

TaskItem.java

public abstract class TaskItem public abstract double getTime();Task.java

public class Task extends TaskItem String name; double time; public Task() public Task(String name, double time) this.name = name; this.time = time; public String getName() return name; public void setName(String name) this.name = name;
Override public double getTime() return time; public void setTime(double time) this.time = time; Project.java

public class Project extends TaskItem { String name; ArrayList subTask = new ArrayList(); public Project() public Project(String name, ArrayList subTask) this.name = name; this.subTask = subTask; public String getName() return name; public void setName(String name) this.name = name; public ArrayList getSubTask() return subTask; public void setSubTask(ArrayList subTask) this.subTask = subTask;
Override public double getTime() { double time = 0; for (int i = 0; i Demopublic class MainApp public static void main(String<> args) Task task1 = new Task("requirement", 50); Task task2 = new Task("analysis", 34); Task task3 = new Task("design", 65); Task task4 = new Task("implement", 23); Task task5 = new Task("test", 65); Task task6 = new Task("maintain", 32); ArrayList subTask = new ArrayList(); subTask.add(task1); subTask.add(task2); subTask.add(task3); subTask.add(task4); subTask.add(task5); subTask.add(task6); Project project = new Project("quan li diem", subTask); // tinh tong thoi gian du an System.out.println("total time: " +project.getTime()); // tinh tong thoi gian du an sau khoản thời gian bo task: maintain project.removeTask(task6); System.out.println("total time after remove sầu maintain task: " +project.getTime()); Kết quả:

total time: 269.0total time after remove sầu maintain task: 237.0

Okay, Done!

References:

https://en.wikipedia.org/wiki/Composite_pattern


This entry was posted in Design Pattern and tagged design pattern. Bookmark the permalinks.

Điều phía bài viết


← Facade Pattern vào Java – Code ví dụ Facade Pattern
Bridge Pattern vào Java – Code ví dụ Composite Pattern →