首页 > 其他 > 详细

代理模式

时间:2020-04-04 22:33:19      阅读:51      评论:0      收藏:0      [点我收藏+]

UML 图:

技术分享图片

 

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

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

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

 

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

 

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

 

例子:AOP

 

详细请看拓展阅读:

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

静态代理和动态代理

代理模式代码例子演示

AOP原理

 

代理模式

原文:https://www.cnblogs.com/qwertiLH/p/12633573.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!