• 设计模式-代理模式


    代理模式

    解决场景:

    需要通过代理去访问目标对象的时候,比如目标对象不能由访问对象直接访问,就需要访问对象通过代理去访问目标。

    代理即为中介

    package com.zang.schema.proxy;
    
    /**
     * @author Zhang Qiang
     * @Date 2019/8/30 11:02
     */
    public  interface AbstractSubject {
        void request(String event);
    }
    

      

    目标对象

    package com.zang.schema.proxy;
    
    /**
     * 目标 需要通过代理访问的目标
     *
     * @author Zhang Qiang
     * @Date 2019/8/30 11:04
     */
    public class RealSubject implements AbstractSubject {
    
        @Override
        public void request(String event) {
            System.out.println(event + "正常工作中...");
        }
    }
    

      

    代理对象

    package com.zang.schema.proxy;
    
    /**
     * @author Zhang Qiang
     * @Date 2019/8/30 11:08
     */
    public class Proxy implements AbstractSubject {
    
        private RealSubject realSubject;
    
        @Override
        public void request(String event) {
            if (realSubject == null){
                realSubject = new RealSubject();
            }
            proRealSubject();
            realSubject.request(event);
            postRealSubject();
        }
    
        public void proRealSubject(){
            System.out.println("访问正常对象之前的预处理");
        }
    
        public void postRealSubject(){
            System.out.println("访问正常对象之后的后续处理");
        }
    
    }
    

      

  • 相关阅读:
    都是CSS惹的祸
    Ruby简介
    网络攻击利用DedeCms漏洞
    ASP.NET验证技术详解
    一个低级错误引发的血案
    FCKeditor配置和精简【附源码】
    邮件发送详解
    Timer定时器的设计实例详解
    常用的加密算法MD5、SHA1
    JS日历控件集合附效果图、源代码
  • 原文地址:https://www.cnblogs.com/meijsuger/p/11434039.html
Copyright © 2020-2023  润新知