跟着Android学设计模式:代理(proxy)

版权声明:本文为博主原创文章,未经博主同意不得转载。

https://blog.csdn.net/Sailingthink/article/details/28269839

代理模式

1.意图:为其它对象提供一种代理以控制对这个对象的訪问。

2.适用性:

远程代理;虚代理。保护代理;智能引用;

Android源代码中用到了大量的代理设计模式,比方Context的设计,Binder的设计等。

以下是Context的类图。以此说明代理设计模式的特点:

代理设计模式的要点是,代理者实现了被代理的所有接口。所以他们应该有共同的功能接口。在本例中。ContextWarpper是一个包装类,它继承了context类。实现了其抽象函数。

可是它把详细的实现动作托付给了其成员变量mBase所引用的Context来运行。

而mBase的真实对象实际上是ContextIml。

Activity,Service,Application都是ContextWarpper的子类。

在实际编程中大量的操作都要借助Context来完毕,比方要通过Uri操作数据库,再比方要发送Intent。在分析源代码的时候,知道了Context的代理模式,能高速准确的定位代码运行的路径。


posted @ 2019-03-30 13:55  ldxsuanfa  阅读(109)  评论(0编辑  收藏  举报