状态模式

在状态模式(State Pattern)中,类的行为是基于它的状态改变的。
允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。

状态模式.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);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 9,183评论 0 14
  • 【学习难度:★★★☆☆,使用频率:★★★☆☆】直接出处:状态模式梳理和学习:https://github.com/...
    BruceOuyang阅读 4,968评论 0 2
  • 目录 本文的结构如下: 引言 什么是状态模式 模式的结构 典型代码 代码示例 状态模式和策略模式的区别 优点和缺点...
    w1992wishes阅读 4,138评论 0 6
  • 简介 Allow an object to alter its behavior when its interna...
    Whyn阅读 3,247评论 0 0
  • 雪,在人们的千呼万唤中姗姗而来。 “犹抱琵琶半遮面”,羞羞怯怯。黄昏时节,阴沉干冷,只见路面上细碎的湿,低空里零星...
    四月丽人阅读 1,634评论 0 1

友情链接更多精彩内容