Skip to content

代理模式

相比于观察者模式, 代理模式是一对多的关系

说明

  • 为其他对象提供代理以控制访问
  • 代理模式是一种结构型设计模式, 它允许你提供一个代理对象来控制对另一个对象的访问
  • 代理可以在客户端和目标对象之间充当中间层, 用于增强功能, 控制访问或延迟初始化
  • 应用场景: 远程代理、虚拟代理、保护代理

使用

ts
interface CalcInterface {
  cacl: (x: number, y: number) => number
}

class Person {
  // 代理
  delegate: CalcInterface;
  constructor(delegate: CalcInterface) {
    this.delegate = delegate
  }
  // 计算
  getRes(a: number, b: number) {
    let res = this.delegate.cacl(a, b)
    console.log(res)
  }
}

class DoneA implements CalcInterface {
  cacl(x: number, y: number) {
    return x + y
  }
}

class DoneB implements CalcInterface {
  cacl(x: number, y: number) {
    return x - y
  }
}

// 创建实例传入代理
const man = new Person(new DoneA())
man.getRes(3, 4)