interface Subject{//整个操作的核心主题
public void make();//核心功能
}
class RealSubject implements Subject{
public void make(){
System.out.println("使用核心业务功能");
}
}
class ProxySubject implements Subject{
private Subject subject;
//要接受一个真实主题的操作对象
public ProxySubject(Subject subject){
this.subject = subject;
}
public void prepare(){
System.out.println("为核心业务功能做准备");
}
public void make(){
this.subject.make();
}
public void destroy(){
System.out.println("核心业务功能完成后结束工作");
}
}
public class TestDemo{
public static void main(String args[]){
Subject sub = new ProxySubject(new RealSubject());//在外人看来,只有一个主题(Subject sub),这才是客户端关心的
sub.make();
}
}
代理设计模式的核心组成部分:一个接口两个子类,一个子类负责核心业务操作功能(真实主题类);一个子类负责完成与核心业务相关的操作(代理主题类)。