码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式——代理模式

时间:2018-03-31 19:33:25      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:proxy   cts   www   this   技巧   logs   实现   其他   构造   

  • 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(代理模式)

设计模式——代理模式

标签:proxy   cts   www   this   技巧   logs   实现   其他   构造   

原文地址:https://www.cnblogs.com/boycelee/p/8683533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!