android Model与View解耦的一个简单方式(不需要写接口)

Posted yuLook

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android Model与View解耦的一个简单方式(不需要写接口)相关的知识,希望对你有一定的参考价值。

我给我这种模式起名MVE (Model,View,EventBus)。Model与View大家都了解,这里重点介绍的是EventBus。

 

EventBus是一款针对android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。

 

onCreate   里面注册EventBus  :  EventBus.getDefault().register(this);

onDestroy 里面反注册EventBus  :  EventBus.getDefault().unregister(this);

 

注册写好之后就要在Activity或者你的Fragment里面写一个方法  onEvent(Event event)    // 名字必须是onEvent,event是自己定义的存放数据的实体类,在这个方法里面处理数据

 

异步网络请求返回的数据解析完成之后放入event实体类里面,调用 EventBus.getDefault().post(event);  即会执行你已注册的 onEvent 方法。

 

一个Activity如果有多个网络请求不同数据的处理,仍然是写onEvent方法  只不过是event实体类不一样,EventBus会自动区分。  比如 onEvent(MyEvent event); onEvent(OtherEvent event)

 

以上是关于android Model与View解耦的一个简单方式(不需要写接口)的主要内容,如果未能解决你的问题,请参考以下文章

Android中MVC、MVP、MVVM的区别与使用

Android MVP模式的初识

Android MVP 架构一 View与Presenter

Android设计模式——MVP

Android Dragger2快速入门浅析

angularjs简单介绍和特点