MVC 与 MVP:差异与比较

android 在开发时需要软件架构模式。 MVC 和 MVP 是广泛使用的模式,它们使开发人员有机会模块化项目文件并确保代码被覆盖。

这使开发人员的工作变得轻松。

关键精华

  1. MVC(模型-视图-控制器)将应用程序数据、用户界面和控制逻辑分成三个不同的组件,促进模块化。
  2. MVP (Model-View-Presenter) 也将这些关注点分开,但添加了一个 Presenter 组件来管理视图和模型之间的通信。
  3. MVC 更适合具有复杂用户交互的大型应用程序,而 MVP 适用于具有简单界面的小型项目。

MVC vs 最小化可行性产品 

MVC 是一种架构模式,它将应用程序分为三个主要组件:模型、视图和控制器。 该模型表示应用程序的数据和业务逻辑。 最小化可行性产品 是另一种类似于 MVC 的架构模式,但有一些关键差异。 MVP 模型仍然代表应用程序的数据和业务逻辑。

MVC 与 MVP

MVC 是一种以控制器作为入口点的软件结构。视图层作为单个单元或类实现。

它的所有 3 个呈现层都密切相关; 因此,进行任何更改都可能很复杂。

可以说,MVC 模式启发了 MVP 模式。 然而,MVP 是一个 UI 演示文稿模式。 这并没有描述整个过程,但它解释了视图的结构。

View 构成了 UI 元素,并且它的所有元素都松散地放在一起。

对比表

比较参数MVC最小化可行性产品
意 MVC 代表模型-视图-控制器。MVP 代表模型-视图-演示者。
入口点这个的入口点是Controller。这个的入口点是View。
视图和模型关系此应用程序遵循模块化和单一职责原则。这里 View 知道 Presenter。
继模块化此应用程序不遵循任何模块化或遵守单一职责原则。此应用程序遵循模块化和单一责任原则。
修改 在这里进行修改很困难。在这里进行更改和修改数据并不复杂。

什么是MVC?

MVC 模式意味着模型-视图-控制器。 代码分为这三个部分。 当开发人员为应用程序创建文件时,他们需要选择其中一个层。

另请参阅:  如何清除 Android 手机上的缓存:快速指南

第一层,模型,负责存储应用程序的数据。 它根本不知道接口。 该模型负责与数据库和网络层通信。

视图是应用程序的用户界面或 UI 层。 它包含屏幕上明显的组件。 所有保存在Model中的可视化数据都是View提供的。

用户可以与之交互。 最后一层,Controller,是为了连接Model和View而开发的。 它收集用户的行为,并据此更新模型。

MVC 的一些缺点有时会使工作变得困难。 这里的视图和模型紧密相关。

因此视图的要求会对模型产生影响并降低业务逻辑。 同时,这种紧密关联使得 View 单元测试具有挑战性。

什么是 最小化可行性产品?

MVP 模式表示 Model-View-主持人. 它是MVC的一个更好的版本,通过使用MVP,开发人员可以高效地构建承接的项目代码。

MVP的特性使其非常受开发者欢迎。 其干净且可维护的代码数据库和可测试性使其非常有用。

它也包含三个组成部分。 首先是模型层,它是用来存储数据的。 它维护域逻辑规则并与数据库和网络层进行通信。

下一层,View,是这个应用程序的用户界面。 该层提供所有数据可视化,并跟踪用户的操作以通知演示者。

另请参阅:  WhatsApp 网页版和桌面版:大屏幕快速指南

最后一层是 Presenter,它从模型中获取数据,使用 UI 逻辑,然后确定应该显示什么。 用户可以在 View 中输入,MVP 相应地组织 View 的状态。

然而,MVP 并非没有所有问题。 MVP 的控制者被移除。

因此,为了弥补控制器的不足,Presenter 必须处理流。 所以最终,演示者设法更新模型并展示它。

MVC 和 MVP 之间的主要区别

  1. MVC 代表模型-视图-控制器,而 MVP 代表模型-视图-呈现器。
  2. MVC 的入口点是 Controller,而 MVP 的入口点是 View。
  3. 在MVC应用中,View对Controller没有任何了解,相反,在MVP中,View对Presenter有很好的感知。
  4. 在 MVC 中,代码层紧密相连,但在 MVP 中,代码层松散相关。
  5. 由于 MVC 带有紧密联系的代码层,因此修改它的数据并不容易,但是在 MVP 的情况下,由于代码层之间的联系松散,因此很容易进行更改。
  6. MVC 不遵守单一职责原则,但 MVP 确实遵循它。
参考资料
  1. https://ieeexplore.ieee.org/abstract/document/5567323/
  2. https://research.tue.nl/files/48628529/Lou_2016.pdf

最后更新时间:11 年 2023 月 XNUMX 日

点1
一个请求?

我付出了很多努力来写这篇博文,为您提供价值。 如果您考虑在社交媒体上或与您的朋友/家人分享,这对我很有帮助。 分享是♥️

关于“MVC 与 MVP:差异与比较”的 10 个思考

  1. 这是非常有用的信息。我从来不知道 MVC 和 MVP 之间的区别如此清晰和明显。我一定会在以后的软件架构中应用这些原则。

    回复
  2. 很高兴看到对 MVC 和 MVP 的详细探索,并强调了它们的优点和缺点。总体来说是一篇经过充分研究的作品。

    回复
  3. 遗憾的是,MVC 模式视图和模型之间的紧密关联使得单元测试变得具有挑战性,尤其是对于更复杂的应用程序。 MVP的松耦合很好地解决了这个问题。

    回复

发表评论

想保存这篇文章以备后用? 点击右下角的心形收藏到你自己的文章箱!