代理模式

一直对代理模式理解的不透彻,今天面试又被问到代理模式。结果尬场了!

代理模式:为其他对象提供一种代理以便控制对这个对象的访问。

常见代理类型:

远程代理:最经典的代理模式之一,远程代理负责与远程JVM通信,以实现本地调用者与远程被调用者之间的正常交互

虚拟代理:用来代替巨大对象,确保它在需要的时候才被创建

保护代理:给被调用者提供访问控制,确认调用者的权限

此外还有防火墙代理,智能引用代理,缓存代理,同步代理,复杂隐藏代理,写入时复制代理等等,都有各自特殊的用途

主要解决:

  在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。

代理模式类图:

  

 

参考:

https://www.cnblogs.com/ayqy/p/4005872.html?utm_source=tuicool&utm_medium=referral

https://www.cnblogs.com/meet/p/5116464.html

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

《大话设计模式》 程杰 著

 

再次编辑:

添加动态代理和静态代理  http://blog.csdn.net/hejingyuan6/article/details/36203505

spring  https://mp.weixin.qq.com/s?__biz=MzA3ODQ0Mzg2OA==&mid=2649047165&idx=1&sn=81b8fcc7319d3b08f06e24a7f71b0264&chksm=8753444eb024cd5816f0935d08573cf51ab4b483e64596950c8acfdbad656718144b87e34440&mpshare=1&scene=1&srcid=0118EfqtJseGxKpTqmCej9Jd#rd  

 

posted on 2017-12-01 15:44  robertsun  阅读(150)  评论(0编辑  收藏  举报

导航