Composite Pattern trong Java - Cách triển khai và ví dụ
Trong bài này chúng ta sẽ cùng tìm hiểu về Composite Pattern trong Java. Đây là một trong các Design Patern thuộc nhóm Structural Patern.

Ở đây chúng ta sẽ tìm hiểu các khái niềm về Composite Pattern và cách triển khai thông qua chương trình đơn giản.trong Java.
Composite Pattern là gì?
Composite Pattern được sử dụng khi chúng ta cần xử lý một nhóm các object tương tự như cách xử lý một object.
Điều này thường được thực hiện bới class “owns” của object và cung cấp một tập hợp các phương thức để xử lý chúng như thể xử lý một object.
Bài viết này được đăng tại [free tuts .net]
Chương trình đơn giản với Composite Patern.
Chúng ta sẽ bắt đầu với class Employee.Class này được khởi tạo nhiều lần để tạo thành một nhóm nhân viên.
Trong class này chúng ta cần khai báo các thuộc tính dưới dạng private(đóng gói). Sau đó khởi tạo constructor chứa các tham số là các thuộc tính
Cuối cùng cùng ta khởi tạo các Getter và Setter và một phương thức Tostring để ghi đè kết quả ra màn hình.
import java.util.ArrayList;
import java.util.List;
public class Employee {
private String name;
private String position;
private int wage;
private List<Employee> coworkers;
public Employee(String name, String position, int wage) {
this.name = name;
this.position = position;
this.wage = wage;
coworkers = new ArrayList<Employee>();
}
public void addCoworker(Employee employee) {
coworkers.add(employee);
}
public void removeCoworker(Employee employee) {
coworkers.remove(employee);
}
public List<Employee> getCoworkers() {
return coworkers;
}
public String toString() {
return "Nhân viên : | Tên: " + name + ", Chức vụ: " + position + ", Tiền lương: "
+ wage + "$ |";
}
}
Trong class này chúng ta sẽ tạo một danh sách các nhân viên, đây là nhóm object mà chúng ta cần xử lý giống như dưới dạng một object.
Mỗi nhân viên sẽ có các thông tin như: Tên, chức vụ và tiền lương.
public class CompositePattern {
public static void main(String[] args) {
Employee employee1 = new Employee("Tiến", "Programmer", 1500);
Employee employee2 = new Employee("Quyền", "CEO", 3000);
Employee employee3 = new Employee("Thành", "Manager", 2000);
Employee employee4 = new Employee("Hùng", "Janitor", 500);
Employee employee5 = new Employee("Hường", "Marketing", 1000);
Employee employee6 = new Employee("Việt", "Sales", 2000);
Employee employee7 = new Employee("Hòa", "Programmer", 1750);
Employee employee8 = new Employee("Sơn", "Programmer", 1200);
employee3.addCoworker(employee1);
employee3.addCoworker(employee7);
employee3.addCoworker(employee8);
employee1.addCoworker(employee7);
employee1.addCoworker(employee8);
employee2.addCoworker(employee3);
employee2.addCoworker(employee5);
employee2.addCoworker(employee6);
System.out.println(employee2);
for (Employee headEmployee : employee2.getCoworkers()) {
System.out.println(headEmployee);
for(Employee employee : headEmployee.getCoworkers()) {
System.out.println(employee);
}
}
System.out.println("-----------------------------");
System.out.println("Chương trình này được đăng tại Freetuts.net");
}
}
Chúng ta sẽ sử dụng phương thức addCoworker để thêm các đồng nghiệp cho nhân viên sau đó hiển thị tất cả các nhân viên đó ra màn hình.
Kết quả sau khi chạy chương trình:
Như vậy là chúng ta đã thực hiện xong chương trình đơn giản với Composite Pattern trong Java. Qua hướng dẫn này mình hy vọng sẽ giúp các bạn hiểu hơn về pattern này. Chúc các bạn thực hiện thành công!!!

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng