zoukankan      html  css  js  c++  java
  • 第六天学习静态代理模式

    静态代理模式

    package lambdal;
    /*
    * 真实对象和代理对象都实现同一个接口
    * 代理对象要代理真实角色的事情,所以要声明一个接口
    * 通过接口调用真实对象需要做的事情,还可以做其它事情
    * 实例化时只需要将真实对象传入代理对象即可
    * 代理对象可以完成真实对象无法做的事,真实对象只做自己的事
    * */
    
    
    public class StaticProxy {
        public static void main(String[] args) {
            You you = new You();  //真实对象实例化
            WddingCompany wddingCompany = new WddingCompany(you);
            wddingCompany.HappyMarry();
        }
    }
    
    interface Marry{
        void HappyMarry();
    }
    
    //真实角色,你
    class You implements Marry{
        @Override
        public void HappyMarry() {
            System.out.println("结婚");
        }
    }
    //代理角色,婚庆公司
    class WddingCompany implements Marry{
    
        //代理做的事情
        private Marry target;
    
        //代理婚礼事宜
        public WddingCompany(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("收尾款");
        }
    }
    
    • 多线程中Thread类,Runnable接口,start()方法 也可以以此类比。
  • 相关阅读:
    计算机组成原理
    爬取斗图
    视频爬取
    经典段子爬取
    爬取哈哈笑话
    爬取昵图网
    爬取校花网
    python操作docker
    正则表达式
    UUID
  • 原文地址:https://www.cnblogs.com/sxblogs/p/12892139.html
Copyright © 2011-2022 走看看