Mary-Kate Olsen
リリース: 2024-09-22 22:15:32
オリジナル
691 人が閲覧しました

州

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

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート