状態は動作設計パターンの 1 つであり、クラスの動作はその状態に基づいて変化します。
主要な概念:
コンテキスト: 状態に基づいて動作が変化するクラス/オブジェクト
状態: 抽象状態
具象状態: 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 中国語 Web サイトの他の関連記事を参照してください。