Android中怎么实现代理模式

这篇文章给大家介绍Android中怎么实现代理模式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

站在用户的角度思考问题,与客户深入沟通,找到五通桥网站设计与五通桥网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名与空间、虚拟空间、企业邮箱。业务覆盖五通桥地区。

代理模式

代理模式(Proxy Pattern):为访问对象提供一个代理对象来实现对被访问者的访问,其实就是在访问对象与被访问对象之间添加一个中介,用来隔离访问者与被访问者的具体实现细节。它是一种结构型设计模式。

模式结构

  1. 抽象对象:声明了目标对象和代理对象的共同接口;

  2. 目标对象:被代理或者被访问的对象;

  3. 代理对象:代理对象内部持有目标对象的引用,代理对象与目标对象实现相同的接口, Client 访问代理对象相当于间接访问目标对象。

Android中怎么实现代理模式图片来自于网络

模式实现

下面是一个非常简单的例子。

抽象对象

Android中怎么实现代理模式

目标对象

Android中怎么实现代理模式

代理对象

Android中怎么实现代理模式

Client

Android中怎么实现代理模式

Running

Android中怎么实现代理模式

Android 中的代理模式

Android Binder 类是实现进程间通信的媒介,由于进程间通信贯穿四大组件使用的始末,所以在 Android 开发过程中进程间通信随处可见,而 Android Binder IPC 模型是基于代理模式。

Android Binder IPC 通信模型:

  • Client : 持有 Server 的本地 Binder 对象的代理对象;

  • Server : 持有本地 Binder 对象,为 Client 端提供功能性服务;

  • ServiceManager : 负责管理 Binder 服务,可以根据 Binder Name 获取 Binder 引用,功能类似于 DNS 服务器

  • Binder 驱动 : Client 与 Server ,以及 Server 与 ServiceManager 之间的通信都会经过 Binder 驱动,维持 Binder Proxy 与 Binder 实体引用之间的映射,根据 Client 端由 Binder Proxy 打包发送过来数据包,调用 Server 方法,再将返回结果打包由 Binder Proxy 传回 Client 端。

下面实现一个最简单的 Binder IPC 模型:

抽象对象接口

Android中怎么实现代理模式

目标对象(Binder 本地对象)

Android中怎么实现代理模式

代理对象

Android中怎么实现代理模式

Client

Android中怎么实现代理模式

代理模式的优点和缺点

优点

  • 降低访问者与被访问者之间的耦合度

  • 可以控制访问者对被访问者的访问权限

  • 虚拟代理通过使用一个小对象来代理一个大对象,可以减少系统开销

缺点

  • 代理对象会增加逻辑的复杂度

  • 减慢对目标对象的访问速度

关于Android中怎么实现代理模式就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页名称:Android中怎么实现代理模式
网站网址:http://cdiso.cn/article/jchjce.html

其他资讯