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

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

通过应用软件架构模式来开发安卓应用,总是被开发者所青睐。架构模式为项目文件提供了模块化,并确保所有的代码在单元测试中得到覆盖。它使开发人员很容易维护软件,并在未来扩展应用程序的功能。MVC(模型-视图-控制器)和MVVM(模型-视图-视图模型)是开发者中最流行的两种安卓架构。

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

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

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

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

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

  • 模型:这一层负责数据源的抽象化。模型和ViewModel一起工作来获取和保存数据。
  • 视图:这一层的目的是通知ViewModel关于用户的操作。该层观察ViewModel,不包含任何类型的应用逻辑。
  • 视图模型:它暴露了那些与视图相关的数据流。此外,它作为模型和视图之间的链接。

MVC和MVVM设计模式的区别

MVC(Model View Controller) MVVM(Model View ViewModel)
最古老的安卓应用架构。 业界公认的应用程序的架构模式。
用户输入是由控制器处理的。 视图接受来自用户的输入并作为应用程序的入口。
控制器和视图以一对多的关系存在。一个控制器可以根据需要的操作选择不同的视图。 多个视图可以被映射到单个ViewModel上,因此,视图和ViewModel之间存在一对多的关系。
视图对控制器一无所知。 视图有对ViewModel的引用。
MVC架构对Android APIs的依赖性很高。 对Android APIs的依赖性较低或没有依赖性。
由于代码层是紧密结合的,因此很难对应用程序的功能进行改变和修改。 容易对应用进行修改。但是,如果数据绑定逻辑太复杂,调试应用程序就会有点困难。
对单元测试的支持有限。 单元测试能力在这个架构中是最高的。
MVC不遵循模块化和单一责任原则。 MVVM遵循模块化和单一责任原则。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

UML 问答