静态代理模式示例

 //静态代理模式总结:
 /*
 * 真实对象和代理对象都要实现同一个接口
 * 代理对象要代理真实角色
 * */
 
 /*
 * 好处:
 * 代理对象可以做很多真实对象做不了的事情
 * 真实对象专注于做自己的事
 * */
 
 public class StaticProxy {
     public static void main(String[] args) {
         WeddingCompany weddingCompany = new WeddingCompany(new You());
         weddingCompany.HappyMarry();
    }
 }
 
 interface Marry{
     //人间四大喜事
         //久旱逢甘霖
         //他乡遇故知
         //洞房花烛夜
         //金榜题名时
 
     void HappyMarry();
 }
 
 //真实角色:你去结婚
 class You implements Marry{
     @Override
     public void HappyMarry() {
         System.out.println("happy to marry");
    }
 }
 
 //代理角色:帮助你结婚
 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 after() {
         System.out.println("结婚之后收尾款");
    }
 
     private void before() {
         System.out.println("结婚之前布置现场");
    }
 }
 
posted @ 2022-07-02 19:36  小gun  阅读(163)  评论(0)    收藏  举报