设计模式学习笔记之代理模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式学习笔记之代理模式相关的知识,希望对你有一定的参考价值。

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

    在代理模式中的角色

        抽象对象角色(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需要被保护。

以上是关于设计模式学习笔记之代理模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式学习笔记 之 静态代理

设计模式之代理模式笔记

代理设计模式之静态代理与动态代理(超..)详解

代理模式——HeadFirst设计模式学习笔记

设计模式学习笔记--代理模式

设计模式 - 学习笔记 - 代理模式ProxyPattern