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

模型-视图-展示者(MVP)模式

MVP架构模式为项目代码的结构提供了一种简单的方法。MVP被广泛接受的原因是它提供了模块化、可测试性,以及一个更干净和可维护的代码库。它由以下三个部分组成。

  • 模型:用于存储数据的层。它负责处理领域逻辑(现实世界的业务规则)以及与数据库和网络层的通信。
  • 视图:UI(用户界面)层。它提供数据的可视化,并跟踪用户的动作,以便通知演示者。
  • 展示器:从模型中获取数据并应用UI逻辑来决定显示什么。它管理View的状态,并根据用户从View的输入通知采取相应的行动。

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

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

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

MVP和MVVM设计模式的区别

MVP(Model View Presenter) MVVM(Model View ViewModel)
MVP通过使用Presenter作为Model和View之间的通信通道,解决了有一个依赖性View的问题。 这种架构模式是更多的事件驱动,因为它使用数据绑定,从而使核心业务逻辑与视图容易分离。
在Presenter和View之间存在一对一的关系。 多个视图可以被映射到单个ViewModel中。
演示者拥有关于视图的知识。 ViewModel没有对View的引用。
模型层将用户输入的响应返回给Presenter,Presenter将其转发给View。 根据用户的输入执行操作后,Model层将响应返回给View。
Presenter处理应用程序的流程,View是实际的应用程序。 ViewModel是实际的应用程序,View是用户与应用程序交互的界面。
项目文件将包含更多的类以及代码。 项目文件将包含更多的类,但每个类的代码较少。
对于简单和复杂的应用程序来说是理想的。 对于小规模的项目来说并不理想。
很容易进行单元测试,但View和Presenter的紧密结合会使其略显困难。 在这个架构中,单元测试能力是最高的。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Android系统中MVP和MVVM架构模式的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-mvp-and-mvvm-architecture-pattern-in-android.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。