静态代理

  • 真实对象和代理对象,都要实现同一个接口

  • 代理对象要代理真实角色

静态代理

  • 好处:

代理对象,可以做很多真实对象做不了的事情,

真实对象,可以专注做自己的事情

package BufferedTest;
/*

*/
public class StacticProxy {
  public static void main(String[] args) {
      You you = new You();
      new WeddingCompany(new You()).HaapyMarry();//简化成一行
//       WeddingCompany weddingCompany = new WeddingCompany(new You());
//       weddingCompany.HaapyMarry();
      new Thread(()-> System.out.println("我爱你")).start();
  }
}
interface Marry{
  void HaapyMarry();
}
//真实角色,你去结婚
class You implements Marry{

  @Override
  public void HaapyMarry() {
      System.out.println("王刚二婚了");
  }
}
//代理角色,帮助你结婚
class WeddingCompany implements Marry{
  private Marry target;//代理需要对象,定义接口

  public WeddingCompany(Marry target) {
      this.target = target;//这就是真实对象
  }
  private void before(){
      System.out.println("结婚之前,布置现场");

  }
  private void after(){
      System.out.println("结婚之后,收尾款");

  }


  @Override
  public void HaapyMarry() {
      this.target.HaapyMarry();
      before();
      after();
  }

}
上一篇:CodeForces - 76A:Gift (最小生成树 解决单调性问题是思想)


下一篇:javascript-如何为每个对象datetimepicker创建动态数组