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

结构型模式-代理模式

作者: 格林哈 | 来源:发表于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