静态代理模式
1.真实对象和代理对象都要实现同一个接口
2.代理对象要代理真实对象
public class StaticProxy {public static void main(String[] args) {/* WeddingCompany weddingCompany = new WeddingCompany(new You());weddingCompany.HappyMarry();*/new Thread(()-> System.out.println("想你了")).start();//线程代理new WeddingCompany(new You()).HappyMarry();}}interface Marry{void HappyMarry();
}//真实对象
class You implements Marry{@Overridepublic void HappyMarry() {System.out.println("结婚进程开始");}
}
//代理对象,帮助结婚(婚庆公司)
class WeddingCompany implements Marry{//代理谁?-》真实目标private Marry target;public WeddingCompany(Marry target){this.target = target;}@Overridepublic void HappyMarry() {before();this.target.HappyMarry();//这就是真实对象after();}private void after() {System.out.println("婚礼结束,收尾款");}private void before() {System.out.println("婚礼之前,布置现场");}}