设计模式一一代理模式

in 笔记 with 0 comment

常见代理模式

image.png

实现方式

静态代理动态代理

静态代理

继承方式

image.png

聚合方式

image.png

image.png

小结

静态代理中,聚合方式比继承方式更好,继承的方式一旦有新的代理功能要增加,则会需要创建新的子类去继承,功能越多,子类越多,最终不好维护。聚合方式就相对更灵活,虽然新加功能也需要新加代理类去实现功能,但是代理类之间的顺序可以灵活调整。但是两种静态代理都有局限,只能代理某个具体的对象,不能通用代理。比如CarTimeProxy只能代理Car,不能代理火车、飞机等。所以动态代理出现了。

动态代理

JDK反射实现

image.png
image.png
image.png
image.png
image.png

CGLIB动态代理

image.png

学习资料

视频:https://www.imooc.com/learn/214
代码:https://gitee.com/wirechen/study-designMode-proxy