zoukankan      html  css  js  c++  java
  • 设计模式

    UML 图:

     

    AbstractObject(包括Interface)为抽象类或者接口,包含代理对象需要代理对象帮其实现的接口方法或者抽象方法

    ProxyObject 为代理对象,实现了上面的接口或者继承了抽象类,里面包含一个代理对象的引用

    RealObject 为被代理对象,它也实现了接口或者实现了抽象类里面的方法

     

    简述:说白了就是我 RealObject 实现的接口里面有个 operation() 方法,但是这个方法我不打算自己调用,我要让代理对象来帮我做。那为啥 RealObject 自己不调用还专门要别人去帮他做呢,这样有什么好处?答案就是功能增求,代理对象在执行 RealObject 中的 Operation 方法之前之后可以增加一些增强的代码(如果你接触过AOP、拦截器、过滤器……那对这个应该不难理解)。代理可分为静态代理、动态代理(接口用JDK、类用Cglib)

     

    使用场景:在需要对代码功能进行增强的时候,为了不违反 "对修改关闭,对拓展开放" 的原则,可以采用代理模式

     

    例子:AOP

    详细请看拓展阅读:

    动态代理和JDK中Proxy类创建代理类的原理

    静态代理和动态代理

    代理模式代码例子演示

    AOP原理

     

  • 相关阅读:
    《Mysql
    《Redis
    《pt-query-digest 剖析 Mysql 慢日志》
    《Redis
    《Redis
    《Redis
    《Redis
    《Redis
    python中__new__()与__init__()的区别
    Python常见综合面试题
  • 原文地址:https://www.cnblogs.com/qwertiLH/p/12633573.html
Copyright © 2011-2022 走看看