1,Android中MVC架构
MVC(Model-View-Controller)模式中,模型(Model)表示应用程序核心(数据和业务逻辑对数据进行的操作),视图(View)显示数据(模型)并处理用户交互,控制器(Controller)处理用户交互并更新模型和视图。典型的例子是 Android 中的 Activity。 优点:相对于之前一个文件的模式,抽离出来了Model
缺点:所有的交互处理都在Controller中,如果需求变多,会导致Controller也就是Activity中的代码越来越多
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,方法增多,如果要修改一个方法,需要修改好几个地方
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中也包含了代码