DESIGN PATTERN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Ở đâ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.

Employee.java
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.

CompositePattern.java
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:

composite pattern JPG

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ùng chuyên mục:

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Cách sử dụng Spring  Scheduled trong Spring Boot

Cách sử dụng Spring Scheduled trong Spring Boot

Cách dùng Groovy trong Spring Boot Java

Cách dùng Groovy trong Spring Boot Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo ứng dụng Chat với Spring Boot và Websocket

Tạo ứng dụng Chat với Spring Boot và Websocket

Sử dụng JUnit để tạo unit test trong Spring Boot

Sử dụng JUnit để tạo unit test trong Spring Boot

Cách triển khai Spring Boot trên Tomcat Server

Cách triển khai Spring Boot trên Tomcat Server

Cách test RESTful API trong Spring Boot

Cách test RESTful API trong Spring Boot

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Top