设计模式——代理模式

Posted boycelee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式——代理模式相关的知识,希望对你有一定的参考价值。

  • 1.代理模式定义

    为其他对象提供一种代理一控制这个对象的访问。
    代理模式是一种基本的设计技巧。许多模式,如策略模式,状态模式,访问者模式本质上是特殊场合采用的代理模式。代理模式可以提供非常好的访问控制。

  • 代理模式通用类图

    技术分享图片

  • 角色定义

    (1)Subject抽象主题
    抽象主题类是抽象类或接口,普通业务类型定义。
    (2)RealSubject具体主题
    被代理类,是业务逻辑具体执行者。
    (3)Proxy代理主题
    代理类,它负责对真实角色的应用,吧所有抽象主题类定义的方法限制委托给真实主题角色实现(RealSubject),并且在真实主题角色处理完毕前后做预处理和善后处理。

  • 代码实现

    public interface Subject {
    
    void request();
    }
    public class RealSubject implements Subject {
    public void request() {
        //业务逻辑
    }
}
    public class Proxy implements Subject {

    //要代理的实现类
    private Subject subject = null;

    public Proxy() {
        this.subject = new Proxy();
    }

    //通过构造函数传递代理者
    public Proxy(Object... objects) {

    }

    //实现接口定义的方法
    public void request() {
        this.before();
        this.subject.request();
        this.after();
    }

    //预处理
    public void before() {

    }

    //后处理
    public void after() {

    }
}
  • 代理模式优点

    (1)职责清晰
    真实角色就是实现世界业务逻辑,不关心非本职业务。
    (2)高拓展性
    具体主题角色可以随时变化,只要他实现了接口,代理类都可以不做任何修改地使用。

Proxy(代理模式)










以上是关于设计模式——代理模式的主要内容,如果未能解决你的问题,请参考以下文章

用于从 cloudkit 检索单列的代码模式/片段

设计模式----代理模式

Java设计模式-代理模式之动态代理(附源代码分析)

是否有在单个活动中处理多个片段的 Android 设计模式?

设计模式之代理模式(Proxy)详解及代码示例

代理模式(静态代理动态代理)代码实战(详细)