允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类
// 状态
class State {
constructor(color) {
this.color = color
}
// 改变主体里面的信息
handle(context) {
console.log(`turn to ${this.color} light`, '人可以通行');
context.setState(this)
}
}
// 主体
class Context {
constructor() {
this.state = null
}
getState() {
return this.state
}
setState(state) {
this.state = state
}
}
let context = new Context()
let green = new State("green")
let red = new State("red")
// 绿灯亮了
green.handle(context)
console.log(context.getState());
// 红灯亮了
red.handle(context)
console.log(context.getState());
这个模式感觉理解不难,但是想不到运用的实际的场景里面
后面接触到了的话,再来补全
相关参考文章
https://www.cnblogs.com/wzndkj/p/11846519.html