代理模式就像是现实生活中的中介,通过中介来完成一些本身想要做的事情并添加一些扩展,而当扩展不用时可以直接去掉,也不会影响自己本身的业务。比如12306火车票的代售点。
优点:
1、客户端与目标对象之起到一个中介作用,起到保护目标对象的作用。
2、代理可以对目标类进行扩展,并不会影响目标类原有代码,符合“开闭原则”。
3、代理能够使客户端和目标对象分离,减低了对象之间的耦合度。
缺点:
增加了系统的复杂度,但是便于扩展一些特殊业务,或者一些临时业务的需求。
在Java中api使有专门做代理的工具库Proxy;同时也有第三方包CGLIB
代理其实还分为动态代理和静态代理,这个到Spring 写。
原文:https://www.cnblogs.com/liaobudao/p/11272850.html