版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32048567/article/details/72566782
//核心操作 我定义一个接口 让子类去实现
interface ISubject{
public void get();
}
//真实主题操作 作唯一的业务 实现该接口主力
class Student implements ISubject{
@Override
public void get() {
System.out.println("吃药材");
}
}
//通过工厂模式返回一个真实主体操作核心对象
class Factory {
public static ISubject getSubject(String className){
if("Student".equals(className)){
return new Student();
}
return null;
}
}
// 通过第三方平台代理人帮我去做的事情
class ProxySubject implements ISubject {
private ISubject sub;
public ProxySubject(String className){
if(sub==null){
sub=Factory.getSubject(className);
}
}
//为核心主题前 做准备
public void getYaoCai(){
System.out.println("准备好灵芝 开始煎药");
}
@Override
public void get() {
//准备工作
this.getYaoCai();
//核心工作 代理不知道怎么做 交给总裁去做
sub.get();
//清理工作
this.getClose();
}
//清理最后一步操作
public void getClose(){
System.out.println("清理所有的没用的药材 清理药碗");
}
}
/**测试类**/
public class MyDemo2 {
public static void main(String[] args) {
ISubject cs=new ProxySubject("Student");
cs.get();//调用代理核心主题
}
}