设计模式-状态模式

设计模式-状态模式

设计模式

状态模式的关键是区分事物内部的状态

// OffLightState:
var OffLightState = function (light) {
    this.light = light;
};
OffLightState.prototype.buttonWasPressed = function () {
    console.log('弱光'); // offLightState对应的行为   
    this.light.setState(this.light.weakLightState); // 切换状态到weakLightState
};
//WeakLightState
var WeakLightState = function (light) {
    this.light = light;
};
WeakLightState.prototype.buttonWasPressed = function () {
    console.log('强光');
    // weakLightState对应的行为    
    this.light.setState(this.light.strongLightState); // 切换状态到strongLightState
};
// StrongLightState:
var StrongLightState = function (light) {
    this.light = light;
};
StrongLightState.prototype.buttonWasPressed = function () {
    console.log('关灯');
    // strongLightState对应的行为    
    this.light.setState(this.light.offLightState); // 切换状态到offLightState
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,151评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,964评论 2 17
  • 本文不会过多介绍基础知识,而是把重点放在原型的各个难点上。 大家可以先仔细分析下该图,然后让我们进入主题 prot...
    Simon_s阅读 298评论 0 0
  • var navigator = navigator || {};var window = window || {}...
    DF_Sky阅读 1,328评论 0 0
  • antd-designed-vue layout 基础用法 class 组件的类名 style 组件自定义样式 h...
    rub1cky阅读 965评论 0 0