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需要被保护。
  • 相关阅读:
    闭包
    线程与进程
    异常处理
    socket编程
    面向对象编程
    模块
    正则表达式
    递归、二分查找、冒泡算法
    装饰器
    迭代器与生成器
  • 原文地址:https://www.cnblogs.com/LeslieXia/p/5494898.html
Copyright © 2011-2022 走看看