狀態(tài)模式

在狀態(tài)模式(State Pattern)中,類的行為是基于它的狀態(tài)改變的。
允許對(duì)象在內(nèi)部狀態(tài)發(fā)生改變時(shí)改變它的行為,對(duì)象看起來好像修改了它的類。

狀態(tài)模式.png
public class Context {

    private State state;

    public Context(){
        state = null;
    }

    public void setState(State state){

        this.state = state;
    }

    public State getState(){

        return this.state;
    }
}

public interface State {

    public void doAction(Context context);
}
public class StartState implements State {

    @Override
    public void doAction(Context context) {

        System.out.println("start state");
        context.setState(this);
    }
}
public class StopState implements State {

    @Override
    public void doAction(Context context) {

        System.out.println("stop state");
        context.setState(this);
    }
}
public class StateDemo {

    public static void main(String[] args){

        Context context = new Context();

        StartState startState = new StartState();
        startState.doAction(context);

        StopState stopState = new StopState();
        stopState.doAction(context);
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 設(shè)計(jì)模式概述 在學(xué)習(xí)面向?qū)ο笃叽笤O(shè)計(jì)原則時(shí)需要注意以下幾點(diǎn):a) 高內(nèi)聚、低耦合和單一職能的“沖突”實(shí)際上,這兩者...
    彥幀閱讀 3,885評(píng)論 0 14
  • 【學(xué)習(xí)難度:★★★☆☆,使用頻率:★★★☆☆】直接出處:狀態(tài)模式梳理和學(xué)習(xí):https://github.com/...
    BruceOuyang閱讀 1,290評(píng)論 0 2
  • 目錄 本文的結(jié)構(gòu)如下: 引言 什么是狀態(tài)模式 模式的結(jié)構(gòu) 典型代碼 代碼示例 狀態(tài)模式和策略模式的區(qū)別 優(yōu)點(diǎn)和缺點(diǎn)...
    w1992wishes閱讀 844評(píng)論 0 6
  • 簡(jiǎn)介 Allow an object to alter its behavior when its interna...
    Whyn閱讀 502評(píng)論 0 0
  • 雪,在人們的千呼萬喚中姍姍而來。 “猶抱琵琶半遮面”,羞羞怯怯。黃昏時(shí)節(jié),陰沉干冷,只見路面上細(xì)碎的濕,低空里零星...
    四月麗人閱讀 258評(píng)論 0 1

友情鏈接更多精彩內(nèi)容