温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中怎么实现代理模式

发布时间:2021-06-26 14:41:27 来源:亿速云 阅读:297 作者:Leah 栏目:大数据

这篇文章给大家介绍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中怎么实现代理模式就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI