跟着Android学设计模式:代理(proxy)
2014-06-03 16:52
267 查看
代理模式
1.意图:为其他对象提供一种代理以控制对这个对象的访问。
2.适用性:
远程代理;虚代理;保护代理;智能引用;
Android源码中用到了大量的代理设计模式,比如Context的设计,Binder的设计等。
下面是Context的类图,以此说明代理设计模式的特点:
![](https://img-blog.csdn.net/20140603164248328?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU2FpbGluZ3RoaW5r/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
代理设计模式的要点是,代理者实现了被代理的全部接口,所以他们应该有共同的功能接口。在本例中,ContextWarpper是一个包装类,它继承了context类,实现了其抽象函数。但是它把具体的实现动作委托给了其成员变量mBase所引用的Context来执行。而mBase的真实对象实际上是ContextIml。
Activity,Service,Application都是ContextWarpper的子类。在实际编程中大量的操作都要借助Context来完成,比如要通过Uri操作数据库,再比如要发送Intent。在分析源码的时候,知道了Context的代理模式,能快速准确的定位代码执行的路径。
1.意图:为其他对象提供一种代理以控制对这个对象的访问。
2.适用性:
远程代理;虚代理;保护代理;智能引用;
Android源码中用到了大量的代理设计模式,比如Context的设计,Binder的设计等。
下面是Context的类图,以此说明代理设计模式的特点:
代理设计模式的要点是,代理者实现了被代理的全部接口,所以他们应该有共同的功能接口。在本例中,ContextWarpper是一个包装类,它继承了context类,实现了其抽象函数。但是它把具体的实现动作委托给了其成员变量mBase所引用的Context来执行。而mBase的真实对象实际上是ContextIml。
Activity,Service,Application都是ContextWarpper的子类。在实际编程中大量的操作都要借助Context来完成,比如要通过Uri操作数据库,再比如要发送Intent。在分析源码的时候,知道了Context的代理模式,能快速准确的定位代码执行的路径。
相关文章推荐
- 跟着Android学设计模式:代理(proxy)
- Android与设计模式——代理(Proxy)模式
- Android设计模式之代理模式 Proxy
- 研磨设计模式 之 代理模式(Proxy)1——跟着cc学设计系列
- 研磨设计模式 之 代理模式(Proxy)1??跟着cc学设计系列
- Android设计模式之代理模式 Proxy
- Android设计模式之代理模式Proxy浅显易懂的详细说明
- Android设计模式之代理模式 Proxy
- 设计模式之Proxy(代理)
- 设计模式之Proxy(代理)
- 设计模式之Proxy(代理)
- NET常用设计模式——代理(Proxy)模式
- 设计模式之Proxy(代理)
- 设计模式--代理模式(Proxy Model)
- 设计模式----Proxy(代理)模式
- 设计模式之Proxy(代理)
- 设计模式学习笔记(十三)——Proxy代理模式
- 设计模式之Proxy(代理)
- 设计模式与泡mm的关系之Proxy代理模式及代理模式的再思考
- 设计模式学习——Proxy代理模式