📜  Android中MVC和MVVM架构模式的区别

📅  最后修改于: 2021-09-15 01:17:51             🧑  作者: Mango

通过应用软件架构模式开发 android 应用程序始终是开发人员的首选。架构模式为项目文件提供了模块化,并确保所有代码都包含在单元测试中。它使开发人员可以轻松地维护软件并在未来扩展应用程序的功能。 MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)是开发者中最流行的两种android架构。

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

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

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

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

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

MVVM 模式与 MVP(Model — View — Presenter) 设计模式有一些相似之处,因为 ViewModel 扮演 Presenter 角色。然而,MVP 模式的弊端已经被 MVVM 解决了。它建议将数据呈现逻辑(视图或 UI)与应用程序的核心业务逻辑部分分开。 MVVM 的独立代码层是:

  • Model:这一层负责数据源的抽象。 Model 和 ViewModel 协同工作以获取和保存数据。
  • View:这一层的目的是通知 ViewModel 用户的操作。该层观察 ViewModel,不包含任何类型的应用程序逻辑。
  • 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 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!