设计模式--代理模式

  • 概念
    为其他对象提供一种代理以控制这个对象的访问

  • 结构图
    设计模式--代理模式

  • 角色说明

  • Subject
    抽象类/接口

  • RealSubject
    被委托/被代理的角色,也就是定义proxy的真实实体,业务逻辑的具体执行者

  • Proxy
    委托类/代理类。保存一个应用使得代理可以访问实体,负责对真实角色的应用,吧所有抽象主题类定义的方法限制委托给真实主题角色实现,并且在真实主题角色处理完毕前后做预处理和善后处理工作。

  • 优点

    • 职责清晰
    • 高扩展性
    • 智能化
  • 应用

    • 远程代理
      为一个对象在不同的地址控件提供局部代表

    • 虚拟代理
      根据需要创建开销很大的对象,通过它存放实例化需要很长时间的真实对象。

    • 强制代理
      强制代理就是强制啦,也就是必须要通过真实角色查找到代理角色,不然不能访问。

    • 安全代理
      用来控制真实对象访问时的权限。

    • 智能指引

    • 但调用真实的对象时,代理处理另外一些事情。