设计模式:代理模式

发布时间:2021-10-01 23:54:31 阅读:(176)

    代理模式

    什么是代理模式

    为其他对象提供一种代理以控制对这个对象的访问
    一个对象完成某项动作或任务,是通过对另一个对象的引用来完成的,这种模式叫代理模式

    设计思想

    • 使用一个额外的间接层来支持分散的、可控的、智能的访问
    • 增加一个包装和委托来宝户真实的组件,以避免过度复杂

    代理对象可以在客户端和目标兑现之间起到中间调和作用,并且可以通过代理对象隐藏不希望被客户看到的内容和服务,或者添加客户需要的额外服务

    设计要点

    代理模式中主要有三个角色,在设计代理模式时要找到并区分这些角色。

    • 主题:定义操作、活动、任务的接口类
    • 真实主题:真正完成操作、活动、任务的具体类
    • 代理主题:代替真实主题完成操作、活动、任务的代理类

      优缺点

      优点:
    • 代理模式能够协调调用者和被调用者,在一定程度上降低系统耦合度
    • 可以灵活地隐藏被代理对象地部分功能和服务,也可以增加额外地功能和服务

    缺点:

    • 由于客户端和真实主题间增加了代理对象,因此有些类型地代理模式可能会造成请求地处理速度变慢
    • 实现代理模式需要额外地工作,有些代理模式地实现非常复杂

    应用场景

    • 不想或不能直接引用一个对象时
    • 想对一个对象地功能进行加强时
    • 各种特殊用途:远程代理、虚拟代理、保护代理、缓存代理、防火墙代理、同步化代理、智能引用代理。