代理模式

原创
2017/08/04 16:02
阅读数 10

1.代理模式

代理(Proxy)是一种设计模式:为其他对象提供一种代理以控制这个对象的访问.

这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法

例子 : 就比如说.小明喜欢小红单他不敢自己去追,所以他就小东来代替他去给小红送礼物.这时候小东就是小明的代理,通过这个代理来个小红送东西.这时候小明自己就可以不用露面,解决了小明的尴尬.

代理模式有三种模式:分别是静态代理模式,动态代理模式,Cglib子类代理工厂.下面让我们一起来看看这三种不同的代理.

静态代理

    

静态代理总结:
1.可以做到在不修改目标对象的功能前提下,对目标功能扩展.
2.缺点:因为代理对象需要与目标对象实现一样的接口,所以会有很多代理类,类太多.同时,一旦接口增加方法,目标对象与代理对象都要维护.

动态代理: 

    

 

动态代理总结:
代理对象不需要实现接口,但是目标对象一定要实现接口,否则不能用动态代理

Cglib子类代理工程:

那当我们有些时候目标对象没有实现接口,我们这个时候应该怎么样用代理的.这时候我们可以用Cglib子类代理工厂

没有实现接口的目标对象

 

 


 

这就是Cglib子类代理工厂的实现,我们在使用的时候可以根据场景的实际情况进行选择使用.

在aop中也使用了代理模式,它使用的就是动态代理模式

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部