1.名词解释
代理模式:为其他对象提供一种代理以控制对这个对象的访问。主要有三种,1.远程代理,也就是为一个对象在不同的地址空间提供拒不代表,这样可以隐藏一个对象存在于不同地址空间的事实;2.虚拟代理,是根据要创建开销很大的对象,通过它来存放实例化需要很长时间的真实对象。2.安全代理,用来控制真实对象访问时的权限。
2.代码示例
package DesignPattern.ProxyPattern;
public abstract class Subject {
public abstract void request();
}
真实对象
package DesignPattern.ProxyPattern;
public class RealSubject extends Subject {
private String name = "";
public RealSubject(String name) {
this.name = name;
}
@Override
public void request() {
System.out.println("I am "+ this.name +", May I have your phone call?");
}
}
代理
package DesignPattern.ProxyPattern;
public class Proxy extends Subject{
private RealSubject realSubject ;
@Override
public void request() {
// TODO Auto-generated method stub
if(realSubject == null) {
realSubject = new RealSubject("xxoo");
}
realSubject.request();
}
}
主控程序
package DesignPattern.ProxyPattern;
public class Client {
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.request();
}
}