代理模式
来源:互联网 发布:绝地求生n卡优化设置 编辑:程序博客网 时间:2024/06/10 22:24
一个人或者一个机构代表另一个人或者另一个机构采取行动,在一些情况下,一个客户不想或是不能直接应用一个对象,而代理对象可以在客户端和目标对象之间起到一个中介的作用。
代理模式涉及到了三种角色:抽象主题角色,真实主题角色和代理主题角色
抽象主题角色:声明了真实主题和代理主题的共同接口,这样一来在任何可以使用真是主题的地方都能够使用代理主题
代理主题角色:代理主题角色内部含有对真实主题的引用,从而可以在任何时候操作真实主题对象;代理主题角色提供一个与真实主题角色相同的接口,以便可以在任何时候都可以替代真实主题控制对真实主题的引用,负责在需要的时候创建真实主题对象(和删除真实主题对象);代理角色通常在将客户端调用传递给真实的主题之前或之后,都要执行某个操作,而不是单纯地将调用传递给真实主题对象。
真实主题角色:定义了代理角色所代表地真实对象
测试代码:
l Subject接口
public interface Subject {
public String request();
}
l TargetSubject类,目标对象
public class TargetSubject implements Subject {
public String request() {
return "该房屋出租3000元";
}
}
l ProxySubject类,代理对象
public class ProxySubject implements Subject {
//有代理来访问目标对象
public String request() {
Subject subject = new TargetSubject();
//修改对目标对象的某些业务逻辑
String str = subject.request();
return str.replace("3000", "4000");
}
}
l 测试类App.java
public class App {
public static void main(String[] args) {
//直接访问目标对象
//Subject subject = new TargetSubject();
//String str = subject.request();
//System.out.println("str:"+str);
//访问代理对象
Subject subject = new ProxySubject();
String str = subject.request();
System.out.println("str:"+str);
}
}
- 代理模式--动态代理
- 代理模式-静态代理
- 代理模式-静态代理
- 代理模式 & 动态代理
- 代理模式--静态代理
- 代理模式--动态代理
- 代理模式(动态代理)
- 代理模式-动态代理
- 代理模式-动态代理
- 代理模式动态代理
- 代理模式-静态代理
- 代理模式-动态代理
- 代理模式 -动态代理
- 代理模式---动态代理
- 代理模式-动态代理
- 代理模式--静态代理
- 代理模式!
- 代理模式
- UVA - 10716 Evil Straw Warts Live 贪心
- 【2120】数据结构实验之链表五:单链表的拆分
- 输入/输出函数
- 【Web 前端】笔记1
- Android 关于BitmapFactory 的使用
- 代理模式
- fhfehg
- index optimized
- sfsf
- Command设计模式2
- C++类模板与异常处理
- 什么叫裸机
- 大型机半个世纪发展史
- html保留字符详解