代理设计模式和工厂设计模式相反,工厂设计模式是Factory类实现多个接口,而代理设计模式是多个子类实现一个接口,从而可以让代理主题类来完成真实主题的部分操作。
下面是一个简单是例子:
interface Subject{
public void make();
}
class RealSubject implements Subject{
public void make(){
System.out.println("真实主题要做的事!");
}
}
public void make();
}
class RealSubject implements Subject{
public void make(){
System.out.println("真实主题要做的事!");
}
}
class ProxySubject implements Subject{
Subject subject;
public ProxySubject(Subject subject) {
this.subject = subject;
}
public void print(){
System.out.println("为事前做准备!");
}
public void destroy(){
System.out.println("为真实主题操作后的收尾");
}
public void make(){
print();
subject.make();
destroy();
}
}
Subject subject;
public ProxySubject(Subject subject) {
this.subject = subject;
}
public void print(){
System.out.println("为事前做准备!");
}
public void destroy(){
System.out.println("为真实主题操作后的收尾");
}
public void make(){
print();
subject.make();
destroy();
}
}
public class Gpp {
public static void main(String[] args) {
Subject sub =new ProxySubject(new RealSubject());
sub.make();
Subject sub =new ProxySubject(new RealSubject());
sub.make();
}
}