1,Android中MVC架构

MVC(Model-View-Controller)模式中,模型(Model)表示应用程序核心(数据和事务逻辑对数据进行的操作),视图(View)显现数据(模型)并处理用户交互,控制器(Controller)处理用户交互并更新模型和视图。典型的比如是 Android 中的 Activity。 长处:相对于之前一个文件的模式,抽离出来了Model

缺陷:所有的交互处理都在Controller中,如果需求变多,会导致Controller也便是Activity中的代码越来越多

Android中MVC、MVP和MVVM架构

2,Andropid中的MVP架构

MVP(Model-View-Presenter)模式将控制器(Controller)改成了Presenter,它与View进行交互并处理事务逻辑,而View只担任显现数据并将用户交互传递给Presenter,Model(模型)与 Presenter 没有直接交互,而是经过Presenter来进行数据交换。典型的比如是Android中的 RecyclerView 和 Adapter。

MVP相对于MVC来说

长处:Activity只剩下了View,Presenter承担了View和Model之间的交互,满足了单一职责的准则,视图逻辑变得更加清晰了

缺陷:引入了interface,办法增多,如果要修正一个办法,需求修正好几个地方

Android中MVC、MVP和MVVM架构

3,Android中MVVM架构

MVVM(Model-View-ViewModel)是一种新的规划模式,它是基于 MVP 模式的改进版,经过数据绑定(Data Binding)来完成 View 和 ViewModel 的同步更新,同时 View 和 ViewModel 之间经过接口进行通讯。典型的比如是Android中的 Jetpack 和 Kotlin

在使用的module和app的module中都加入了DataBinding{enabled true} viewbinding:只能省掉findviewbyId viewBinding {enabled true},不需求修正xml databinding:除了viewbinding的功用还能绑定data,需求修正xml,在xml中根布局需求添加<layout ….>

MVVM相对于MVP

长处:增加了DataBinding,代码量更小,完成了模型和视图的自动更新,降低了代码的复杂度,提高了代码的可维护性和可复用性

缺陷:xml中也包含了代码

Android中MVC、MVP和MVVM架构

Android中MVC、MVP和MVVM架构