package 线程_171_静态代理模式;
/**
-
静态代理 设计模式
-
1.真实角色
-
2.代理角色:持有真实角色的引用
-
3.二者 实现相同的接口
*/
public class StaticProxy {//StaticProxy静态代理public static void main(String[] args) {
//创建真实角色;没有新增方法可以使用接口Marry
Marry you = new You();
//创建代理角色+真实角色的引用;
WeddingCompany wc = new WeddingCompany(you);
//执行任务
wc.marry();
}
}
//1.写个接口;共同的接口
interface Marry{//interface接口;Marry结婚
void marry();//marry的访问权限是public;相对于public abstract void marry();abstract抽象的
}
//2.真实角色
class You implements Marry{//implements接口工具
@Override
public void marry() {
System.out.println(“王伟和仙女结婚了…”);
}
}
//3.代理角色;WeddingCompany婚礼公司
class WeddingCompany implements Marry{
//真实角色
private Marry you;
//构造器
public WeddingCompany() {
}
//有参构造器
public WeddingCompany(Marry you) {
super();
this.you = you;
}
private void before(){//before在...之前
System.out.println("布置房间.....");
}
private void after(){//after在..之后
System.out.println("闹洞房..........");
}
@Override
public void marry() {//marry结婚
before();//婚礼前
you.marry();
after(); //婚礼后
}
}
//结果------------------------------------
布置房间…
王伟和仙女结婚了…
闹洞房…