Android中设计模式的比较

来源:互联网 发布:淘宝2017今日成交量 编辑:程序博客网 时间:2024/06/06 11:48

Android中设计模式的比较

安卓开发中常用的设计的模式有MVC、MVP、MVVM、Flux。

1.MVC

mvc是比较常用的模式,M代表Model,即业务逻辑的处理,V代表View,即显示层,C代表Controller,即控制层。在安卓开发中,activity用于页面的展示,即View层,但是一些业务逻辑控制处理也会写在activity中,即造成了activity类的臃肿,有点不太符合MVC模式,所以MVP模式很好的解决了此问题。

2.MVP

MVP是由MVC演变而来,他们的基本思想有相同的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。但是MVP和MVC有一个重大的区别:在MVP中View并不直接使用Model,他们之间是通过Presenter来进行的,所有的交互否发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过Controller。
在activity类中保存一个Presenter的引用,所有的业务逻辑都放在Presenter中,而当数据变化时,通过定义好的接口改变View。使用Dagger2+Retrofix+OkHttp+Rxjava可以更好的实现MVP模式。

3.MVVM

即Model-View-ViewModel,model提供数据,view负责显示,viewmodel跟view和model进行双向绑定。当view输入数据后viewmodel通知model更新数据,反之同理亦然。

4.Flux

Flux是由Facebook提出的,最大的特点是单向的数据流,它的UI状态更新模式继承了MVC模式的设计思想。
Dispatcher:是中心枢纽,管理所有的数据流。他实际上是管理Store注册的一系列回调接口,本身没有逻辑。它仅仅用来将Action发送到各个Store的一套简单的机制。
Stores:包含应用的状态和逻辑。他扮演的角色类似于MVC中Model,但是他负责管理多个对象的状态。
Controller-View:负责监听Store状态并跟新页面。当View收到来自Store的跟新事件时,先从Store的getter方法获取数据,然后调用自己的setState或者更新页面。
Actions:Dispather提供一个方法来分发事件到Store,并包含一些数据,这通常封装成一个Action。Action创建一般被封装到有语境意义的Helper方法(ActionCreator)。

0 0
原创粉丝点击