代理模式
来源:互联网 发布:程序员转行可以做什么? 编辑:程序博客网 时间:2024/06/05 04:33
当对象难以访问或需要对对象的使用加以控制/限制时,可以为对象设置一个代理,代理来持有该对象的实例。对该对象的访问都经由代理对象来控制,再由代理对象去调用被代理对象的实现。这种方法,被称为代理模式。为了增加客户端对目标对象访问的透明性,目标对象和代理类要实现相同的接口,使客户端对方法的使用没有什么区别。
代理模式定义:给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。
接单结构通常如下:
Subject为接口,顶一个了Request方法。RealSubject为实现类,既为即将被代理的对象。他实现了具体的Request方法细节。Proxy为代理类,它也实现了Subject接口,使其在方法级别与RealSubject使用起来无异。代理还持有RealSubject的一个实例。在对代理的方法调用中,调用RealSubject实例的对应方法。
在实际使用中,有几种常用的相对复杂的代理模式:
- 远程代理:为一个不太相同地址空间 的对象提供一个本地代理。
- 虚拟代理:为一个消耗资源较大的对象,提供一个代理,真正使用的时候再创建,实现延迟加载。
- 保护代理:提供权限控制。
- 缓冲代理:存储可被客户端共享的临时状态。
- 智能引用代理:当一个对象行为被调用时,提供一些额外的操作,记录log等。
优点:
- 一定程度上降低了耦合度。
- 客户端针对抽象编程,增加更换代理,无需修改真正实现。符合开闭原则。
- 上述的几种代理模式,在实际开发中都带来了各自的好处。
- 增加代理,带来额外消耗。
- 增加了额外的工作量和类的数量。
1 0
- 代理模式--动态代理
- 代理模式-静态代理
- 代理模式-静态代理
- 代理模式 & 动态代理
- 代理模式--静态代理
- 代理模式--动态代理
- 代理模式(动态代理)
- 代理模式-动态代理
- 代理模式-动态代理
- 代理模式动态代理
- 代理模式-静态代理
- 代理模式-动态代理
- 代理模式 -动态代理
- 代理模式---动态代理
- 代理模式-动态代理
- 代理模式--静态代理
- 代理模式!
- 代理模式
- 通过ftp采集文件的性能总结
- UICollectionView如果在数据不够一屏时上下滚动
- 桥接模式
- 组合模式
- 请不要做个浮躁的人
- 代理模式
- java获取大文件的MD5、SHA1,CRC32码
- IoDH 实现的单例模式
- Android 主题动态切换框架:Prism
- 天声人語 20160201 デモ届け出制でいいのか
- 磁盘阵列(raid)
- 装饰模式
- 门面模式
- android adb install + apk 与adb push+apk两种安装apk的使用总结