由一个接口,俩个子类共同实现一个接口,其中一个子类负责实现真正的业务,另一个子类完成辅助真实业务主题的操作
interface a {
void eat();
}
//真正的业务
class a1 implements a {
@Override
public void eat() {
System.out.println("主要是吃顿饭");
}
}
//代理的业务
class a2 implements a {
private a a;
//构造方法为铺垫,使用它调用eat()方法
public a2(a a) {
this.a = a;
}
@Override
public void eat() {
System.out.println("1");
this.a.eat();
System.out.println("2");
}
}
//这个方法可以使主方法的实例化变得简单
class Proxy_Factory{
public static a get(){
return new a2(new a1());
}
}
public class ProxyTest {
public static void main(String[] args) {
// a2 a = new a2(new a1());
// a.eat();
a a=Proxy_Factory.get();
a.eat();
}
}