15.3层间通信
层间通信主要有两种方式:
(1) 消息
优点:层间的耦合性比较小,而且一个消息可以有多个接收方,如广播消息。
缺点:如果系统中的消息比较多,可能处理速度比较慢,或消息队列满了,接收方无法接收到消息。还有一种情况是A发消息给B的,但可能先被C接收了,B也无法接收到消息。
(2) 回调函数
优点:处理速度比较快。
缺点:层间的耦合性比较大。
层间通信交互模式:
(1)同步调用
A向B发出请求后,一直等收到B的反馈后,再继续执行。
(2)异步调用
A向B发出请求后,不等待B的反馈,就继续执行后续代码。
MVP架构的运行示例:
UI层的Activity在启动之后实例化相应的Presenter,App的控制权后移,由UI转移到Presenter,两者之间的通信通过BroadCast、Handler或者接口完成,只传递事件和结果。
举个简单的例子,UI层通知逻辑层(Presenter)用户点击了一个Button,逻辑层(Presenter)自己决定应该用什么行为进行响应,该找哪个模型(Model)去做这件事,最后逻辑层(Presenter)将完成的结果更新到UI层。
网友评论