Skip to content

结构型模式

结构型设计模式。

适配器模式

使接口不兼容的类可以一起工作。

javascript
class Adapter {
  adapt(oldInterface) {
    return {
      newMethod: () => oldInterface.oldMethod()
    }
  }
}

装饰器模式

动态地给对象添加职责。

javascript
function decorator(target) {
  target.newMethod = function() {
    // 新功能
  }
  return target
}

代理模式

为其他对象提供代理以控制访问(如懒加载、权限校验、远程代理)。

javascript
class RealSubject { request() { return 'real' } }
class Proxy {
  constructor() { this.real = null }
  request() {
    if (!this.real) this.real = new RealSubject() // 懒加载
    return this.real.request()
  }
}

外观模式

为复杂子系统提供统一的高层接口,降低调用方复杂度。

javascript
class Facade {
  constructor(a, b) { this.a = a; this.b = b }
  operation() { return this.a.step1() + this.b.step2() }
}