Android代理模式

Android代理模式(自己的理解 欢迎大神指出错误)

代理模式至少要出现两个类:代理类和被代理类

用代理类来代理被代理类来执行被代理类的方法(以下是一个log的例子)

代理类
/**
 * 这是一个代理类
 */
public interface ILogger {

    public void e(String value);

}
/**
 * 这是一个被代理的类
 */
public class Logger implements ILogger {

    final private static String TAG = "ILogger";

    @Override
    public void e(String value) {
        Log.e(TAG, value);
    }
}```

用被代理类实现代理类的方法 然后在Activity(其他也是可以的)里打印日志
private ILogger logger;

 @Override
    protected void initData() {
        logger = new Logger();
        logger.e("abc");
        logger.e("xyz");
        logger.e("abcdefghijklmnopqrstuvwxyz");
    }
以下就是运行后的打印输出

日志打印

是不是感觉经常都有用到的呢

现在我们将被代理类拆成 被代理类和实现类

/**
 * 这个是实现类
 */
public class L implements ILogger {

    private final static String TAG = "ILogger";

    @Override
    public void e(String value) {
        Log.e(TAG, value);
    }
}
将被代理类也做点小改动
/**
 * 这是一个被代理的类
 */
public class Logger implements ILogger {

    final private static String TAG = "ILogger";

    private L l;

    public Logger() {
        this.l = new L();
    }

    @Override
    public void e(String value) {
        l.e(value);
    }
}
然后在Activity(其他也是可以的)里打印日志
private ILogger logger;

 @Override
    protected void initData() {
        logger = new Logger();
        logger.e("abc");
        logger.e("xyz");
        logger.e("abcdefghijklmnopqrstuvwxyz");
    }
输出结果和之前一致

输出结果

看出代理模式的优点了么

不管我怎么改 只要能保证代理类不改变 被代理类或者实现类不管我怎么改 打印日志那里的代码都不会改变 这算是一种封装了 减少更改代码的量

以上是静态代理 有关于动态代码 我想静静

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值