JS模式--状态模式(状态机)】的更多相关文章

(十九)备忘录模式 备忘录模式目的是保存一个对象的某个状态,在适当的时候恢复这个对象. class Memento{ private String value; public Memento(String value){ this.value = value; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } } class Storage…
状态模式 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类. 简单的解释一下: 第一部分的意思是将状态封装成独立的类,并将请求委托给当前的状态对象,当对象的内部状态改变时,会带来不同的行为变化. 第二部分是从客户的角度来看,我们使用的对象,在不同的状态下具有截然不同的行为,这个对象看起来是从不同的类中实例化而来的,实际上这是使用了委托的效果. 现在举一个网上比较多的例子,没错就是电灯的例子(不要烦,请耐心往下看) // 首先定义了一个Light类 class Light {…
level01:电灯程序 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var Light = function(){ this.state = 'off'; // 给电灯设置初始状态 off…
1. 状态模式 var offLightState = function(light){ this.light = light; } offLightState.prototype.buttonWasPressed = function(){ console.log('弱光'); this.light.setState(this.weakLightState); } var weakLightState = function(light){ this.light = light; } weakL…
什么是行为型模式,小编觉得就是对行为的一种描述啦,一种对某种行为模型的定义. 状态模式: 状态模式 概述 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新. 适用性 .一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为. .一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态. 这个状态通常用一个或多个枚举常量表示. 通常,有多个操作包含这一相同的条件结构. State模式将每一个条件分支放入一个独立的类中.…
一.状态模式 [状态接口] /*** * 房间"状态"接口 */ package cn.sxt.state; public interface State { void handle(); } [管理状态类] /*** * 环境.上下文类, 管理房间的状态 *如果这是银行系统,这个类就是账号,根据状态的不同,进行不同的操作 */ package cn.sxt.state; public class HomeContext { private State state; public vo…
下面的状态机选择通过Function.prototype.call方法直接把请求委托给某个字面量对象来执行. var light = function () { this.currstate = FSM.off; this.button = null; }; light.prototype.init = function () { var button = document.createElement('button'); self = this; button.innerHTML = '已关灯…
js设计模式——5.状态模式 代码演示 /*js设计模式——状态模式*/ // 状态(红灯,黄灯,绿灯) class State { constructor(color) { this.color = color; } handle(context) { console.log(`turn to ${this.color} light`); context.seState(this); } } // 主体 class Context { constructor() { this.state =…
状态模式 状态模式(State)允许一个对象在其内部状态改变的时候改变它的行为,对象看起来似乎修改了它的类. 状态模式的使用场景也特别明确,有如下两点: 一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为.(有些对象通常会有好几个状态,在每个状态都只可以做当前状态才可以做的事情,而不能做其它状态能做的事儿) 一个操作中含有大量的分支语句,而且这些分支语句依赖于该对象的状态.状态通常为一个或多个枚举常量的表示. 一.有限状态机 状态总数(state)是有限的. 任一时刻,只处在…
 状态模式,在大的范畴中的定义为当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类.每种编程语言有不同的实现方式,运用的范围也多用于游戏之中. 这里我用javascript来模拟状态模式,主要思想是通过事件监听的效果来控制一个主要对象的状态.那么何为事件监听的效果呢?在其他语言中,可以通过多个对象的协作来完成状态模式,而我在javascript中可以通过对DOM节点进行事件操控来传递消息,使主要对象接收消息(当然不同状态接收到的消息所产生的反应是不一样的).而在javascr…