zoukankan      html  css  js  c++  java
  • 设计模式之 代理模式

    一、定义

    代理模式:为另一个对象提供一个替身或者占位符以控制对这个对象的访问。

    二、分析

    • 使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理的对象可以是远程对象、创建开销大的对象或者是需要进行安全控制的对象。
    • 代理在结构上类似装饰者,但目的是不同的;装饰者为对象添加行为,而代理则是控制访问。
    • 和装饰器一样,代理会造成设计类的增加。

    三、类图

    代理模式类图

    四、使用场景

    • 远程代理(Java RMI):适用于服务对象位于远程服务器上的情形。

    • 虚拟代理:控制访问创建开销大的资源,在实际需要它时才去真正创建它。当对象在创建前和创建中时,由虚拟代理地来扮演对象的替身。对象创建后,代理就会将请求直接委托给对象。

    • 缓存代理:为开销大的运算提供暂时的存储,它允许多个客户共享结果,以减少计算或者网络延迟。

    • 防火墙代理:控制网络资源的访问,保护主题免于”坏客户“的侵害。

    • 智能引用代理:当主题被引用时,进行额外的动作,例如计算一个对象被引用的次数。

    五、代码实现

    源码:gitee地址(点击跳转)

    原创内容,如果你觉得文章还可以的话,不妨点个赞支持一下!转载请注明出处。
  • 相关阅读:
    在请求中使用XML Publisher生成文件报错
    Oracle Sourcing Implementation and Administration Guide(转)
    API To Import Negotiations(转)
    使用POI动态更新导出的EXCEL模板中的列
    使用POI设置导出的EXCEL锁定指定的单元格
    QML获取随机颜色
    Access导出excel
    Component
    QML中打印
    Qt Quick Dialogs
  • 原文地址:https://www.cnblogs.com/lixingwu/p/14616849.html
Copyright © 2011-2022 走看看