通过应用软件架构模式开发 android 应用程序始终是开发人员的首选。架构模式为项目文件提供了模块化,并确保所有代码都包含在单元测试中。它使开发人员可以轻松地维护软件并在未来扩展应用程序的功能。 MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)是开发者中最流行的两种android架构。
模型—视图—控制器(MVC)模式
MVC 模式建议将代码拆分为 3 个组件。在创建应用程序的类/文件时,开发人员必须将其分类为以下三层之一:
- 模型:此组件存储应用程序数据。它对接口一无所知。该模型负责处理领域逻辑(现实世界的业务规则)以及与数据库和网络层的通信。
- 视图:它是 UI(用户界面)层,其中包含在屏幕上可见的组件。此外,它提供存储在模型中的数据的可视化,并为用户提供交互。
- 控制器:该组件建立视图和模型之间的关系。它包含核心应用程序逻辑并获知用户的响应并根据需要更新模型。
模型 — 视图 — 视图模型 (MVVM) 模式
MVVM 模式与 MVP(Model — View — Presenter) 设计模式有一些相似之处,因为 ViewModel 扮演 Presenter 角色。然而,MVP 模式的弊端已经被 MVVM 解决了。它建议将数据呈现逻辑(视图或 UI)与应用程序的核心业务逻辑部分分开。 MVVM 的独立代码层是:
- Model:这一层负责数据源的抽象。 Model 和 ViewModel 协同工作以获取和保存数据。
- View:这一层的目的是通知 ViewModel 用户的操作。该层观察 ViewModel,不包含任何类型的应用程序逻辑。
- ViewModel:它公开那些与视图相关的数据流。此外,它充当模型和视图之间的链接。
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 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!