Java静态代理模式

静态代理模式

//静态代理模式总结
/** 真实对象和代理对象都要实现同一个接口或是共同继承某个类
* 代理对象要代理真实角色
* 好处:代理对象可以做很多真实对象做不了的事情
* 真实对象专注做自己的事情
*/
public class StaticProxy{
   public static void main(String[] args){
       You you = new You(); //你要结婚
       
       //此处Thread代理Runnable接口
       new Thread( () -> System.out.println("lo") ).start();//lambda表达式
       
       new WeddingCompany(new You()).HappyMarry(); //此处的HappyMarry相当于线程里的start()
       //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; //新建一个目标对象
   //用构造方法给target对象传递参数
   public WeddingCompany(Marry target){
       this.target = target;
  }
   
   @Override
   public void HappyMarry(){
       before();
       this.target.HappyMarry(); //这就是真实对象
       after();
  }
   
   public void before(){
       System.out.println("结婚前布置现场");
  }
   
   public void after(){
       System.out.println("结婚后收尾款");
  }
}

 

posted on 2021-11-11 10:36  愿将过往均储藏  阅读(128)  评论(0)    收藏  举报

导航