zoukankan      html  css  js  c++  java
  • 代理模式(静态代理)

    代理模式能将代理对象与真实被调用的目标对象分离

    一定程度上降低了系统的耦合度,扩展性好

    保护目标对象

    增加目标对象

    代理模式的缺点:

    代理模式会造成 系统设计中类的数目增加

    开客户端和目标对象增加一个代理对象,会造成请求处理速度会变慢

     

    代理模式的种类:

    1. 静态代理
    2. 动态代理(jdk只能代理接口)
    3. CGLIB代理(不要使用 final)

     

    Spring 的代理是 ,当Bean有实现接口时,Spring 使用 jdk的动态代理

    当bean没有实现接口时,spring 使用 cglib

    可以强制使用 cglib

    <aop:aspectj-autoproxy proxy-target-class="true"/>

     

    jdk 的动态代理速度会 比 cglib速度要快

    和动态代理有点相似的设计模式: 装饰者模式、适配器模式

    装饰者主要体现在给对象添加行为

    而 代理主要是体现在控制 访问,通过设置代理源 加强目标对象

    适配器模式: 考虑对象和改变对象的接口

     

    使用Proxy角色,使得耗时处理(生成实例)推迟。
    在大型系统的初始化过程中,存在大量耗时处理,如果初始化暂时不会使用的功能,会使启动时间延长,所以使用代理模式,先初始化需要使用的功能

    当遇到代理人不会解决的问题时,还是会"转交"给本人——"委托"(现实世界中是本人委托给代理人,在设计模式中却相反)

    https://www.cnblogs.com/ealenxie/p/9896269.html

    静态代理和 装饰器模式真的很像

    但是他们的侧重点又不一样,所以设计模式本身就是一种思想表达的形式

    因为看问题的角度不同,那么对这个问题的解释也不一样

    所以设计模式很多时候是有交叉甚至重合的

    也许我只是为了达到某种目的而采用一种设计模式,但是可能不知不觉就加进来其他的设计模式

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    项目1:即时标记
    每天一个小程序—0000题(python图像处理)
    每天一个小程序—0004题(统计单词出现次数)
    每天一个小程序—第0001题(uuid模块)
    python实现八皇后问题
    2018/01/05——时间会改变一切!
    HDU 6249 Alice’s Stamps(dp)
    51nod 1422 沙拉酱前缀
    【转】DSP动态内存分配函数的使用
    优秀人的博客
  • 原文地址:https://www.cnblogs.com/lyr-2000/p/12570263.html
Copyright © 2011-2022 走看看