定義:在狀態模式(State Pattern)中,類的行為是基于它的狀態改變的。
特點:
1、封裝了轉換規則。
2、枚舉可能的狀態,在枚舉狀態之前需要確定狀態種類。
3、將所有與某個狀態有關的行為放到一個類中,并且可以方便地增加新的狀態,只需要改變對象狀態即可改變對象的行為。
4、允許狀態轉換邏輯與狀態對象合成一體,而不是某一個巨大的條件語句塊。
5、可以讓多個環境對象共享一個狀態對象,從而減少系統中對象的個數。
企業及開發和常用框架中的應用:
實例:
public class Demo { public static void main(String[] args) { Context context = new Context(); State move = new Move(); move.show(context); State stop = new Stop(); stop.show(context); }}class Context{ private State state;  public void setState(State state){ System.out.println("給物體加持狀態"); this.state = state; }}interface State{ void show(Context context);}class Move implements State{ public void show(Context context) { context.setState(this); System.out.println("物體處于運動狀態"); }}class Stop implements State{ public void show(Context context) { context.setState(this); System.out.println("物體處于靜止狀態"); }}狀態模式是用于對象狀態比較多的情況,比如完成一件事的時候有未完成、已完成、進行中、擱置等狀態,這時候就可以考慮是用狀態模式。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答