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()方法 也可以以此类比。
  • 相关阅读:
    前端面试分享
    1
    22
    微信同声传译插件的使用
    微信小程序基于第三方插件微信同声传译,以及一些问题解决办法
    阿里云服务器各种活动集锦
    腾讯云多人直播开发第一天,基于IE游览器的ActiveX开发
    vue组件化学习第三天
    vue组件化学习第二天
    vue组件化学习第一天
  • 原文地址:https://www.cnblogs.com/sxblogs/p/12892139.html
Copyright © 2011-2022 走看看