![]()
//设计模式之静态代理模式
interface Chefer {
void BecomeChefer();
}
//小明想当厨师,天天做好吃的
class XiaoMing implements Chefer {
@Override
public void BecomeChefer() {
System.out.println("我要学厨艺");
}
}
//我是中介,钱出够了什么都妥了
class Proxy implements Chefer {
//静态代理模式需要把对象传进来
private XiaoMing xiaoMing;
Proxy(XiaoMing xiaoMing) {
this.xiaoMing = xiaoMing;
}
@Override
public void BecomeChefer() {
System.out.println("我是中介,你想要干啥");
xiaoMing.BecomeChefer();
System.out.println("先给钱");
}
}
public class Demo4 {
public static void main(String[] args) {
Proxy proxy = new Proxy(new XiaoMing());
proxy.BecomeChefer();
}
}
输出:
我是中介,你想要干啥
我要学厨艺
我开始帮你找啦
静态代理模式有一个很严重的缺点,就是需要生成一个代理类,很麻烦,不推荐