📜  Android中的MVC和MVVM架构模式之间的差异

📅  最后修改于: 2021-05-13 16:42:15             🧑  作者: Mango

通过应用软件架构模式开发android应用程序始终是开发人员的首选。架构模式为项目文件提供了模块化,并确保所有代码都包含在单元测试中。它使开发人员将来可以轻松完成维护软件和扩展应用程序功能的任务。 MVC(模型-视图-控制器)和MVVM(模型-视图-ViewModel)是开发人员中最流行的两种android体系结构。

模型-视图-控制器(MVC)模式

MVC模式建议将代码分为3个部分。在创建应用程序的类/文件时,开发人员必须将其分类为以下三层之一:

  • 型号:此组件存储应用程序数据。它不具备有关接口的知识。该模型负责处理域逻辑(实际业务规则)以及与数据库和网络层的通信。
  • 视图:这是UI(用户界面)层,其中包含在屏幕上可见的组件。此外,它提供了存储在模型中的数据的可视化,并向用户提供了交互。
  • 控制器:此组件建立视图与模型之间的关系。它包含核心应用程序逻辑,并通知用户响应并根据需要更新模型。

模型-视图-控制器(MVC)模式

模型—视图— ViewModel(MVVM)模式

MVVM模式与MVP(模型—视图—演示者)设计模式有一些相似之处,因为演示者角色是由ViewModel扮演的。但是,MVVM解决了MVP模式的缺点。它建议将数据表示逻辑(视图或UI)与应用程序的核心业务逻辑部分分开。 MVVM的单独代码层是:

  • 模型:该层负责数据源的抽象。 Model和ViewModel一起工作以获取和保存数据。
  • 视图:该层的目的是向ViewModel通知用户的操作。该层遵守ViewModel,不包含任何类型的应用程序逻辑。
  • ViewModel:它公开了与View相关的那些数据流。而且,它作为模型与视图之间的链接而充当服务器。

模型—视图— ViewModel(MVVM)模式

MVC和MVVM设计模式之间的差异

MVC(Model View Controller)

MVVM(Model View ViewModel)

Oldest android app architecture. Industry-recognized architecture pattern for applications.
User Inputs are handled by the Controller. The View takes the input from the user and acts as the entry point of the application.
Controller and View exist with the one-to-many relationship. One Controller can select different View based upon required operation. Multiple View can be mapped with single ViewModel and thus, the one-to-many relationship exists between View and ViewModel.
The View has no knowledge about the Controller. The View has reference to the ViewModel.
This architecture has high dependency on the Android APIs.  Has low or no dependency on the Android APIs.
Difficult to make changes and modify the app features as the code layers are tightly coupoled. Easy to make changes in application. Howerver, if data binding logic is too complex, it will be a little harder to debug the application.
Limited support to Unit testing. Unit testability is highest in this architecture.
It does not follow modular and single responsibility principle. Follows modular and single responsibility principle.
想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!