主题
行为型模式
行为型设计模式。
观察者模式
定义对象间一对多的依赖关系。
javascript
class Subject {
constructor() {
this.observers = []
}
subscribe(observer) {
this.observers.push(observer)
}
notify(data) {
this.observers.forEach(obs => obs.update(data))
}
}策略模式
定义一系列算法,把它们封装起来。
javascript
class Context {
constructor(strategy) {
this.strategy = strategy
}
execute() {
return this.strategy.do()
}
}命令模式
将请求封装为对象,使调用方与接收方解耦,支持撤销/重做。
javascript
class Command { execute() {} }
class LightOn extends Command { execute() { return 'light on' } }责任链模式
使多个对象都有机会处理请求,请求沿链传递直到被处理。
javascript
class Handler {
setNext(h) { this.next = h; return h }
handle(req) { return this.next ? this.next.handle(req) : null }
}