ホームページ  >  記事  >  Java  >  州

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-09-22 22:15:32530ブラウズ

州

状態は動作設計パターンの 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。