Android中MVC和MVVM架构模式的区别
admin
2023-07-30 20:17:50
0

通过应用软件架构模式来开发安卓应用,总是被开发者所青睐。架构模式为项目文件提供了模块化,并确保所有的代码在单元测试中得到覆盖。它使开发人员很容易维护软件,并在未来扩展应用程序的功能。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遵循模块化和单一责任原则。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...