06/04/2021, 14:47

State Pattern trong Java - Cách triển khai và ví dụ - Design Pattern trong Java

Trong hướng dẫn này chúng ta sẽ cùng nhau tìm hiểu về State Pattern trong Java. Đây là một trong những Design Pattern thuộc nhóm Behavioral Pattern. Chúng ta sẽ tìm hiểu lần lượt về các khái niệm liên quan đến State Pattern trong Java. Cũng như cách triển khai nó như thế nào trong Java thông qua ...

Trong hướng dẫn này chúng ta sẽ cùng nhau tìm hiểu về State Pattern trong Java. Đây là một trong những Design Pattern thuộc nhóm Behavioral Pattern.

Chúng ta sẽ tìm hiểu lần lượt về các khái niệm liên quan đến State Pattern trong Java. Cũng như cách triển khai nó như thế nào trong Java thông qua một chương trình đơn giản.

State Pattern là gì?

State Pattern được sử dụng khi một object cụ thể cần thay đổi hành động, dựa trên trạng thái của nó. Điều này được thực hiện bằng cách cung cấp cho mỗi object này một hoặc nhiều object state.

Dựa trên các object state này, chúng ta hoàn toàn có thể thay đổi các hành động của các object liên quan.

Chương trình đơn giản với State Pattern.

Đầu tiên chúng ta sẽ tạo một interface State.

State.java
public interface State {
    public void doAction(Context context);
}

Tiếp đến chúng ta sẽ tạo một class Context dựa trên interface vừa mới được tạo.

Context,java
public class Context {
    private State state;

    public Context() {
        state = null;
    }

    public void setState(State state) {
        this.state = state;
    }

    public State getState() {
        return state;
    }
}

Và hai class cụ thể để thực hiện nó.

ApplicationStart.java
public class ApplicationStart implements State {

    @Override
    public void doAction(Context context) {
        System.out.println("Ứng dụng đang ở trạng thái bắt đầu phát triển.");
        context.setState(this);
    }
    public String toString() {
        return "Trạng thái bắt đầu.";
    }
}
ApplicationFinish.java
public class ApplicationFinish implements State {

    @Override
    public void doAction(Context context) {
        System.out.println("Ứng dụng đang ở trạng thái phát triển hoàn thiện.");
        context.setState(this);
    }
    public String toString() {
        return "Trạng thái hoàn thành.";
    }
}

Cuối cùng, chúng ta sẽ tạo class Main để thực hiện chạy chương trình và kiểm tra kết quả.

Main.java
public class Main {
    public static void main(String[] args) {
        Context context = new Context();

        ApplicationStart start = new ApplicationStart();
        start.doAction(context);

        System.out.println(context.getState());

        ApplicationFinish finish = new ApplicationFinish();
        finish.doAction(context);

        System.out.println(context.getState());

        System.out.println("----------------------------------------");
        System.out.println("Chương trình này được đăng tại Zaidap.com.net");
    }
}

Kết quả sau khi chạy chương trình:

state pattern PNG

Như vậy là chúng ta đã thực hiện xong chương trình đơn giản với State Pattern trong Java. Chúc các bạn thực hiện thành công!!!

Trần Trung Dũng

15 chủ đề

2610 bài viết

Cùng chủ đề
0