跟着Android学设计模式:代理(proxy)
代理模式
1.意图:为其它对象提供一种代理以控制对这个对象的訪问。
2.适用性:
远程代理;虚代理。保护代理;智能引用;
Android源代码中用到了大量的代理设计模式。比方Context的设计,Binder的设计等。
以下是Context的类图。以此说明代理设计模式的特点:
代理设计模式的要点是。代理者实现了被代理的所有接口,所以他们应该有共同的功能接口。
在本例中。ContextWarpper是一个包装类。它继承了context类。实现了其抽象函数。
可是它把详细的实现动作托付给了其成员变量mBase所引用的Context来运行。而mBase的真实对象实际上是ContextIml。
Activity,Service。Application都是ContextWarpper的子类。在实际编程中大量的操作都要借助Context来完毕,比方要通过Uri操作数据库,再比方要发送Intent。
在分析源代码的时候,知道了Context的代理模式,能高速准确的定位代码运行的路径。