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

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.

Bài viết này được đăng tại [kiso.vn]

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

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

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.

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ó.

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.";
    }
}
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ả.

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 Kiso.vn");
    }
}

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!!!

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *