静态代理模式

静态代理模式

package com.zishi.lesson3;


//静态代理总结:
   //真实对象和代理对象都需要实现同一个接口
   //代理对象要代理真实角色

//好处:
   //代理对象可以做很多真实对象做不了的事情
   //真实对象专注做自己的事情
public class StacticProxy {
   public static void main(String[] args) {
       You you = new You();
//       new Thread( ()-> System.out.println("我爱你") ).start();
//       new WeddingCompany(new You()).HappyMarry();

       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{

   private Marry target;

   public WeddingCompany(Marry target){
       this.target = target;
  }

   @Override
   public void HappyMarry() {

       before();
       this.target.HappyMarry();
       after();

  }

   private void before() {
       System.out.println("婚前,布置婚礼现场");
  }
   private void after() {
       System.out.println("婚后,离婚doge");
  }
}

 

posted @ 2021-09-01 00:08  子时未临  阅读(132)  评论(0编辑  收藏  举报