6.12 代理模式

参考资料:https://blog.csdn.net/weixin_38003389/article/details/88017747

https://www.runoob.com/design-pattern/proxy-pattern.html

一、什么是代理模式

1.1 代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。

  很好理解,你去买房子可以自己了解地区的楼盘,自己找房东调查卖楼的价格,但这样需要浪费时间。现实生活中我们可以直接找中介或者APP找到相应的房源,省下很多自己去底层了解的东西。代理对象可以在客户端和目标对象之前起到中介的作用。

1.2 代理模式分类:

  静态代理:涉及到一个接口、一个接口实现类、还有一个修饰这个接口实现类的代理类,分别对应着租房的动作,房东,中介三者的关系。

  JDK动态代理:动态代理不用我们去手编写代理类,在运行时,动态的在内存中生产代理类。

  第三方代理技术Cglib动态代理:可以对任何类生成代理,代理的原理是可以对目标对象接口实现代理,也可以进行继承代理。

二、代理模式的优缺点

2.1 优点:

   1、职责清晰。 2、高扩展性。 3、智能化。

2.2 缺点:

  1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂。

三、代理的实例场景

1.Windows 里面的快捷方式。

2.去代售点买火车票。

3.找中介买房

4.在Spring的AOP编程中:如果加入容器的目标对象有实现接口,用JDK代理、如果目标对象没有实现接口,用Cglib代理。

posted @ 2020-05-25 21:01  Smileing  阅读(157)  评论(0编辑  收藏  举报