面向对象 接口之代理模式(ProxySubject)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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();//调用代理核心主题
}
}

猜你喜欢

转载自blog.csdn.net/qq_32048567/article/details/72566782