首页 > 代码库 > 学习大话设计模式07_代理模式
学习大话设计模式07_代理模式
代理模式:为其他对象提供一种代理以控制对这个对象的访问。
1 /** 2 * 定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy. 3 * @author Monica 4 * 5 */ 6 abstract class Subject { 7 public abstract void Request(); 8 } 9 10 11 /**12 * 定义Proxy所代表的真实实体13 * @author Administrator14 *15 */16 public class RealSubject extends Subject {17 18 @Override19 public void Request() {20 System.out.println("真实的请求");21 }22 23 }24 25 26 /**27 * 保存一个引用使用代理可以访问实体,并提供一个与Subject的接口相同的接口,28 * 这样代理就可以用来替代实体。29 * @author Administrator30 *31 */32 public class Proxy extends Subject{33 private RealSubject realSubject;34 35 @Override36 public void Request() {37 if(realSubject == null) {38 realSubject = new RealSubject();39 }40 realSubject.Request();41 }42 43 }
调用:
public static void main(String[] args) { Proxy proxy = new Proxy(); proxy.Request();}
代理模式应用:
1 -- 远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。
2 -- 虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。
3 -- 安全代理,用来控制真实对象访问时的权限。
4 -- 智能指引,是指当调用真实的对象时,代理处理另外一些事。
学习大话设计模式07_代理模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。