代理模式
UML
解释说明
- 为其他对象提供一种代理以控制对这个对象的访问。
- 远程代理:为一个对象在不同的地址空间提供局部代表,隐藏其存在于不同空间的事实。
- 虚拟代理:根据需要创建大开销的对象,用来存放实例化耗时大的真实对象。
- 安全代理:控制真实对象访问时权限。
- 智能代理:调用真实对象时,代理处理另外一些事。
代码实现
package learn04;
public abstract class Subject {
public abstract void Request();
}
package learn04;
public class RealSubject extends Subject {
@Override
public void Request() {
System.out.println("源请求!");
}
}
package learn04;
public class Proxy extends Subject {
RealSubject realSubject;
@Override
public void Request() {
System.out.print("Proxy: ");
if (null == realSubject) {
realSubject = new RealSubject();
}
realSubject.Request();
}
}
import learn04.Proxy;
public class Main {
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.Request();
}
}
参考资料