静态代理 演示:实现静态代理对比Thread 举例:婚庆公司代理你处理结婚事件 //静态代理模式总结: //真实角色和代理角色需要实现同一个接口 //代理对象要代理真实对象 //好处:代理对象可以做真实对象做不了的事情 //真实对象就可以专注做自己的事情 public class StaticProxy { public static void main(String[] args) { You you = new You();//你要结婚 WeddingCompany weddingCompany = new WeddingCompany(you); weddingCompany.HappyMarry(); } } //人间四大喜事 //久旱逢甘霖 //他乡遇故知 //洞房花烛夜 //金榜题名时 interface Marry{ void HappyMarry(); } //真实角色,你去结婚 class You implements Marry{ @Override public void HappyMarry() { System.out.println("我要开心的结婚了"); } } //代理角色,婚庆公司 class WeddingCompany implements Marry{ //创建一个目标对象 //代理谁->目标真实角色target 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("结婚之前,准备婚礼"); } }