代理模式
一直对代理模式理解的不透彻,今天面试又被问到代理模式。结果尬场了!
代理模式:为其他对象提供一种代理以便控制对这个对象的访问。
常见代理类型:
远程代理:最经典的代理模式之一,远程代理负责与远程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
作者:robert 出处:http://www.cnblogs.com/robertsun/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有错误,欢迎指出。以免更多的人被误导。 欢迎留言交流。 |