Android精选

设计模式知识梳理(7) - 结构型 - 代理模式

2018-11-28  本文已影响56人  泽毛

一、基本概念

1.1 定义

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

1.2 例子

代理模式

代理模式的角色分为以下几种:

/**
 * 抽象主题类。
 *
 * @author lizejun
 **/
public abstract class Subject {

    /**
     * 业务方法。
     */
    public abstract void visit();
}
/**
 * 实现抽象主题的真实主题类。
 *
 * @author lizejun
 **/
public class RealSubject extends Subject {

    @Override
    public void visit() {
        Log.d("RealSubject", "visit()");
    }
}
/**
 * 代理类。
 *
 * @author lizejun
 **/
public class ProxySubject extends Subject {

    private Subject mSubject;

    public ProxySubject(Subject subject) {
        mSubject = subject;
    }

    @Override
    public void visit() {
        mSubject.visit();
    }
}

1.3 代理模式的使用场景

当无法或不想直接访问某个对象或访问某个对象存在困难时,可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,委托对象与代理对象 需要 实现相同的接口

1.4 代理模式优缺点

优点

缺点

二、Android 源码

在之前的文章中,我们已经在源码当中接触过两种代理模式,这里就不再重复说明了,有兴趣的可以看下面这两篇文章:

三、项目应用

待补充。

四、参考文献

上一篇下一篇

猜你喜欢

热点阅读