代理设计模式的核心精髓就在于有一个主题操作接口(可能有多种方法),
核心类只完成核心功能,代理类负责完成所有与核心类有关的辅助性操作
interface Subject{
public void make();
}
class RealSubject implements Subject{//核心类
public void make(){
System.out.println("项目正在进行");
};
}
class ProxySubject implements Subject{//代理类
private Subject subject ;
//接收核心类
ProxySubject(Subject subject){
this.subject = subject;
}
public void prepare(){
System.out.println("项目正在准备");
}
public void ending(){
System.out.println("项目正在收尾");
}
public void make(){
this.prepare();
this.subject.make();
this.ending();
}
}
public class Proxy {
public static void main(String[] args) {
Subject subject = new ProxySubject(new RealSubject());
subject.make();//调用的是代理类操作
}
}
图片来源:http://study.163.com/course/courseLearn.htm?courseId=1455026#/learn/video?lessonId=1737556&courseId=1455026