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()方法 也可以以此类比。
  • 相关阅读:
    iOS 方便的宏定义
    IOS 推送消息 php做推送服务端
    iOS 7 动画UIDynamicAnimator
    iOS 适配
    ios 实现简单的解析xml网页
    用 MPMoviePlayerController 实现简单的视频下载播放功能
    ios 自定义弹出对话框效果
    ios国外大神
    git学习
    ios 7UI适配方法
  • 原文地址:https://www.cnblogs.com/sxblogs/p/12892139.html
Copyright © 2011-2022 走看看