//静态代理模式
//真实对象和代理对象都需要实现同一个接口
//代理对象 要代理真实对象
//创建一个接口 创建真实对象和创建一个代理对象
public class StaticProxy {
public static void main(String[] args) {
WeddingCompany weddingCompany = new WeddingCompany(new You());
weddingCompany.happyMarry();
}
}
interface Marry{
void happyMarry();
}
//真实对象
class You implements Marry{
@Override
public void happyMarry() {
System.out.println("自己要结婚了");
}
}
//代理对象=>婚庆公司
class WeddingCompany implements Marry{
private Marry target;
public WeddingCompany(Marry target){
this.target=target;
}
@Override
public void happyMarry() {
before();
this.target.happyMarry();
after();
}
//结婚之后
private void after(){
System.out.println("收钱,撤退");
}
//结婚之前
private void before(){
System.out.println("布置现场,工作");
}
}
//总结:
//代理对象可以做很多真实对象做不了的事
//真实对象专注做自己的事