首頁 > Java > java教程 > 主體

狀態

Mary-Kate Olsen
發布: 2024-09-22 22:15:32
原創
670 人瀏覽過

狀態

狀態是行為設計模式之一,其中類別的行為會根據其狀態而變化。

關鍵概念
上下文:行為依狀態變化的類別/物件
狀態:抽象狀態
具體狀態:代表各種狀態,它改變Context類別的行為。

讓我們透過一個例子來理解這一點:

狀態.java

public interface 狀態 {
    public void doAction(Context context);
}
登入後複製

國家具體實施

public class Start狀態 implements 狀態 {
    private Context context;
    public Start狀態(){}
    @Override
    public void doAction(Context context){
        this.context = context;
        this.context.set狀態(this);
        System.out.println("Player is in Start狀態");
    }

    public String toString(){
        return "Start 狀態";
    }
}

public class End狀態 implements 狀態 {
    private Context context;
    public End狀態(){}
    @Override
    public void doAction(Context context){
        this.context = context;
        this.context.set狀態(this);
        System.out.println("Player is in End狀態");
    }

    public String toString(){
        return "End 狀態";
    } 
}

登入後複製

主要

public class Main {
    public static void main(String args[]){
        Context context = new Context();
        狀態 state = new Start狀態();
        state.doAction(context);
        //current state
        System.out.println(context.get狀態().toString());

        狀態 state2 = new End狀態();
        state2.doAction(context);
        //new 狀態
        System.out.println(context.get狀態().toString());
    }
}
登入後複製

輸出:

Player is in Start狀態
Start 狀態
Player is in End狀態
End 狀態
登入後複製

註:以上代碼遵循ISP、LSP、SRP、OCP的紮實原則

以上是狀態的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板