美文网首页
结构型模式-代理模式

结构型模式-代理模式

作者: 格林哈 | 来源:发表于2020-03-12 19:42 被阅读0次

    0 结构型模式

    • 涉及如何组合类和对象以形成更大的结构。
    • 和类有关的结构模式涉及如何合理地使用继承机制。
    • 和对象有关的结构型模式涉及如何合理地使用对象组合机制。

    1 代理模式

    • 1.1 概念: 为其他对象提供一种代理以控制对这个对象的访问。

    • 1.2 场合:

      • 远程代理
        • 为对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。
      • 虚拟代理
        • 如果一个对象的创建需要花费较多的时间,就应当给该对象提供与一个代理模式
      • 安全代理
        • 用来控制真实对象访问的权限。
    • 1.3 代理模式UML

    • image.png
    • 1.4 角色

    • ISubject 该接口是对被访问者或者被访问资源的抽象

    • SubjectImpl 被访问者或者被访问资源的具体实现类

    • SubjectProxy 被访问者或者被访问资源的代理实现类

    • Client 访问者的抽象角色

    package com.mg.springjiemi.proxy;
    public interface ISubject {
        public String request();
    }
    
    package com.mg.springjiemi.proxy;
    public class SubjectImpl implements ISubject {
        @Override
        public String request() {
            return "跟老板交谈";
        }
    }
    package com.mg.springjiemi.proxy;
    public class SubjectProxy implements ISubject {
        ISubject iSubject;
        public SubjectProxy(ISubject iSubject) {
            this.iSubject = iSubject;
        }
        @Override
        public String request() {
            System.out.println("先跟秘书交谈,安全代理,虚拟代理,远程代理");
            return iSubject.request();
        }
    }
    package com.mg.springjiemi.proxy;
    public class Client {
        public static void main(String[] args) {
            ISubject iSubject = new SubjectImpl();
            SubjectProxy proxy = new SubjectProxy(iSubject);
            String value = proxy.request();
            System.out.println(value);
        }
    }
    
    
    

    相关文章

      网友评论

          本文标题:结构型模式-代理模式

          本文链接:https://www.haomeiwen.com/subject/euiijhtx.html