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.

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:

Khi nào dùng Default Methods trong Java 8

Khi nào dùng Default Methods trong Java 8

Ở 2 bài trước chúng ta đã tìm hiểu 2 tính năng mới của Java…

Cách chuyển chữ hoa thành chữ thường trong Java

Cách chuyển chữ hoa thành chữ thường trong Java

Trong bài viết này chúng ta sẽ tìm hiểu về cách chuyển đổi chữ in…

Bài tập tính tổng các số tự nhiên trong Java

Bài tập tính tổng các số tự nhiên trong Java

Các số dương 1, 2, 3, 4, ... được gọi là các số tự nhiên,…

Cách chuyển chữ thường thành chữ hoa trong Java

Cách chuyển chữ thường thành chữ hoa trong Java

Trong chuỗi có thể vừa có ký tự thường vừa có ký tự hoa, nhưng…

Cách viết hoa ký tự đầu tiên trong Java

Cách viết hoa ký tự đầu tiên trong Java

Để hiểu được bài này, các bạn cần có kiến thức căn bản về Java…

Hướng dẫn chuyển đổi giờ phút giây trong Java

Hướng dẫn chuyển đổi giờ phút giây trong Java

Để hiểu được chương trình, các bạn cần có kiến thức cơ bản về Java.…

Cách lấy thời gian hiện tại trong Java

Cách lấy thời gian hiện tại trong Java

Để hiểu được bài viết này, các bạn cần có kiến thức cơ bản sau…

Cách làm tròn số trong Java

Cách làm tròn số trong Java

Khi thực hiện tính toán, việc kết quả ra một con số thập phân dài…

Cách tìm ma trận chuyển vị trong Java

Cách tìm ma trận chuyển vị trong Java

Quá trình hoán đổi giữa hàng và cột được gọi là chuyển vị của ma…

Cách chuyển ArrayList thành mảng và ngược lại trong Java

Cách chuyển ArrayList thành mảng và ngược lại trong Java

Để hiểu được bài này, các bạn cần có kiến thức cơ bản về mảng…

Cách nối hai mảng trong Java

Cách nối hai mảng trong Java

Mình sẽ thực hiện hai chương trình nối mảng. Chương trình thứ nhất nối hai…

Cách xóa khoảng trắng của chuỗi trong Java

Cách xóa khoảng trắng của chuỗi trong Java

Mình sẽ thực hiện hai chương trình khác nhau để các bạn có thể hiểu…

In ra tam giác bằng ký tự * và số trong Java

In ra tam giác bằng ký tự * và số trong Java

Mình sẽ giới thiệu cách để in ra các tam giác bằng ký tự *…

Tìm số lớn nhất trong mảng Java

Tìm số lớn nhất trong mảng Java

Các bạn cần tìm hiểu về mảng, cách khởi tạo và in mảng trong Java…

Tìm ước của một số nguyên trong Java

Tìm ước của một số nguyên trong Java

Trong bài viết này chúng ta sẽ tìm hiểu cách tìm tất cả các ước…

Cách kiểm tra số hoàn hảo trong Java

Cách kiểm tra số hoàn hảo trong Java

Cách kiểm tra số đối xứng trong Java

Cách kiểm tra số đối xứng trong Java

Trong bài viết này chúng ta sẽ kiểm tra một số có phải là số…

Đảo ngược một số trong Java

Đảo ngược một số trong Java

Mình sẽ giới thiệu các bạn cách đảo ngược một số sử dụng vòng lặp…

Tìm bội chung nhỏ nhất trong Java

Tìm bội chung nhỏ nhất trong Java

Mình sẽ sử dụng hai cách khác nhau để tìm BCNN. Cách thứ nhất mình…

Cách hoán đổi hai số trong Java

Cách hoán đổi hai số trong Java

Trong phần này mình sẽ sử dụng một biến tạm temp() làm biến trung gian…

Top