mvc,mvp和mvvm的简单介绍

MVC是最经典的开发模式之一,在上大学的时候老师教的也是这个。

MVC(Model,View,Control)

MVC有两个很明显的问题:

1.m层和v层直接打交道,导致这两层耦合度高

2.因为所有逻辑都写在c层,导致c层特别臃肿

为了解决这两个问题,MVC的变种模式出现了MVP和MVVM.


MVP(Model,View,Presenter)

MVC架构方式的变种,使用Presenter来代替Control,而且改变了数据的流向,View和Model之间不再直接进行交互,而是全部通过Presenter来进行。Presenter同时持有View和Model,同时View和Model中也各自含有对于Presenter的引用。当View中的视图改变,需要更新数据时,通过Presenter来通知Model来进行数据更新,同样的当数据发生更新时,也通过其自身含有的额Presenter引用来通知View来进行更新。这样Presenter就可以作为桥梁来联系两者,而传统的Activity只需要进行UI的绘制,呈现即可。

  • 优点:优点是可以是得整个软件分层清晰,降低耦合度,同时也将Activity从既是Control又是View的境地中解脱出来,只需要单一的负责UI即可,降低了Activity的任务

  • 缺点:缺点是需要加入Presenter来作为桥梁协调View和Model,同时也会导致Presenter变得很臃肿,在维护时比较不方便。而且对于每一个Activity,基本上均需要一个对应的Presenter来进行对应。为了缓解这种臃肿,MVVM出现了。


MVVM(Model,View,ViewModel)

MVVM其实是对MVP的一种改进,他将Presenter替换成了ViewModel,并通过双向的数据绑定来实现视图和数据的交互。也就是说只需要将数据和视图绑定一次之后,那么之后当数据发生改变时就会自动的在UI上刷新而不需要我们自己进行手动刷新。在MVVM中,他尽可能的会简化数据流的走向,使其变得更加简洁明了。

目前这种架构主要使用databing框架,关于这个框架下一章节介绍。

发布了24 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_26923265/article/details/82622652