zoukankan      html  css  js  c++  java
  • 设计模式学习笔记之代理模式

    代理模式
        为另一个对象提供一个替身或占位符以控制对这个对象的访问。
        使用代理模式创建代表对象,让代表对象控制某个对象的访问,被代理的对象可以是远程的对象、创建开销大的对象或需要安全控制的对象。

        在代理模式中的角色

            抽象对象角色(Subject):声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象。

            目标对象角色(RealSubject):定义了代理对象所代表的目标对象。

            代理对象角色(Proxy):代理对象内部含有目标对象的引用,从而可以在任何时候操作目标对象;代理对象提供一个与目标对象相同的接口,以便可以在任何时候替代目标对象。代理对象通常在客户端调用传递给目标对象之前或之后,执行某个操作,而不是单纯地将调用传递给目标对象。

        图解:
        首先是Subject,它为 RealSubject 和 Proxy 提供了接口。通过实现同一接口,Proxy在RealSubject出现的地方取代它。
        RealSubject 是真正做事的对象,它是被Proxy代理和控制的对象。
        Proxy 持有 RealSubject 的引用。在某些例子中,Proxy 还会负责 RealSubject 对象的创建与销毁。客户和RealSubject的交互都必须通过Proxy。因为Proxy和RealSubject实现相同的接口(Subject),所以任何用到RealSubject的地方,都可以用Proxy取代。Proxy也控制了对RealSubject的访问,在某些情况下,我们可能需要这样的控制。这些情况包括RealSubject是远程的对象、RealSubject创建开销大,或RealSubject需要被保护。
  • 相关阅读:
    大量 TIME_WAIT 状态 TCP 连接,对业务有什么影响?怎么处理
    点击按钮保存当前页面为图片html2canvas
    浅谈webpack优化
    nginx配置
    table表格边框线问题
    git push到指定仓库
    No bean named 'xxx' is defined错误,原因及解决方案
    关于The requested list key 'map' could not be resolved as a collection/array/map/enumera...
    Tomcat网页加载过慢的排查调整time_wait连接过多
    MySQL information_schema 系统库
  • 原文地址:https://www.cnblogs.com/LeslieXia/p/5494898.html
Copyright © 2011-2022 走看看