• 13 代理模式


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

    UML类图:

    搜狗截图20161219222026

    Subject为RealSubject和Proxy提供了统一的接口,Proxy就是RealSubject的代理。RealSubject是真正做事的对象,是被Proxy代理和控制访问的对象。Proxy持有RealSubject的引用,客户想与RealSubject交互的话,必须经过Proxy代理。

    上面就是代理模式的一般形式,但代理模式有许多变体。典型的有远程代理、虚拟代理和保护代理。

    1 远程代理控制访问远程对象

    如Web Service便是用远程代理的形式。

    2 虚拟代理控制访问创建开销大的资源

    开销大,可能是网络请求流量大、耗时长,也可能是IO读写满等等。比如,网页中的图片对象,由于图片请求比较耗时,但为了兼顾排版美观,就先用于图片大小一致的方框占位,等图片下载好后,填充到占位的地方,这便是一种虚拟代理。

    3 保护代理基于权限控制对资源的访问

    4 智能引用代理(Smart Reference Proxy),在调用真实对象时,代理处理另外一些事。如计算真实对象的引用次数,这样当该对象没有引用时,可以自动释放它。(看来GC就是这类啊)

    另外,还有许多种代理的变体,比如防火墙代理(Firewall Proxy),控制网络资源的访问,保护主体免于“坏客户”的侵害;缓存代理(Caching Proxy)为开销大的运算结果提供暂时存储,它也允许多个客户共享;同步代理(Synchronization Proxy)在多线程的情况下为主体提供安全的访问等等,好深奥,好好学。

    这节没有代码,后续深入学习web service。

  • 相关阅读:
    PAT (Basic Level) Practise:1001. 害死人不偿命的(3n+1)猜想
    流加密法
    The NMEA 0183 Protocol
    USB 描述符
    网摘
    What are the 10 algorithms one must know in order to solve most algorithm challenges/puzzles?
    Why did Jimmy Wales invest in Quora? Is he afraid that it will take over Wikipedia?
    Add Binary
    Cocos2d-x 网络资源
    Cache
  • 原文地址:https://www.cnblogs.com/zhixin9001/p/6201267.html
Copyright © 2020-2023  润新知