【问题标题】:can I use MVP with MVVM我可以将 MVP 与 MVVM 一起使用吗
【发布时间】:2017-09-08 05:05:04
【问题描述】:

我得到了一个源代码,并试图使用文档来理解它。

在文档中,它说代码结合使用 MVP 和 MVVM 来制作项目。

谁能回答我的以下问题:-

  1. 在一个项目中使用两种设计模式(MVP 和 MVVM)有什么意义?
  2. 我如何通过查看一些源代码简单地知道它是使用 mvp、MVC 还是任何其他设计模式制作的?
  3. 你能告诉我......任何设计模式中的层是什么?在任何设计模式中,我们将使用多少个最小层来制作一个项目?拥有尽可能多的层有什么好处?
  4. java逻辑和android逻辑有什么区别?因为我们只是通过使用任何设计模式将 java 与 android 逻辑分开以获得更好的测试环境。举个例子。

【问题讨论】:

  • 我认为this article 可能对您有些兴趣,它直接从这种方法背后的设计思想角度讨论了您的问题
  • 你能告诉我......任何设计模式中的层是什么?在任何设计模式中,我们将使用多少个最小层来制作一个项目?尽可能多的层有什么好处? ——

标签: wpf design-patterns model-view-controller mvvm mvp


【解决方案1】:

如果代码使用 MVC,您将看到以下内容:

  1. 模型:模型包含数据信息。不调用或使用 Controller 和 View。包含业务逻辑和表示数据的方式。这些数据中的一些可能以某种形式显示在视图中。它还可以包含从某个源检索数据的逻辑。

  2. 控制器:充当视图和模型之间的连接。视图调用控制器,控制器调用模型。它基本上通知模型和/或视图进行适当的更改。

  3. 视图:处理 UI 部分。与用户互动。

对于MVVM(模型视图视图模型):

视图模型:

  1. 它是视图状态的表示。
  2. 它保存视图中显示的数据。
  3. 响应查看事件,即表示逻辑。
  4. 调用其他功能进行业务逻辑处理。
  5. 切勿直接要求view 显示任何内容。

现在让我们看看MVP(Model View Presenter):

类似于传统的 MVC,但 Controller 被 Presenter 取代。但是Presenter 与Controller 不同,它也负责更改视图。 视图通常不会调用演示者。

现在你的问题:

在一个项目中使用两种设计模式(MVP 和 MVVM)有什么意义?
答:可能是需要。而且它们都非常密切相关,正如我所说,将两者混合以解决特定类型的问题可能很有用。

我如何通过查看一些源代码简单地知道它是使用 mvp、MVC 还是任何其他设计模式制作的?

Ans:阅读我提供的解释。尝试查看哪种模式与代码紧密匹配。可能使用了多种设计模式。

你能告诉我......任何设计模式中的层是什么?在任何设计模式中,我们将使用多少个最小层来制作一个项目?尽可能多的层有什么好处?
Ans:对于层数没有这样的硬性规定。为了使您的代码可重用、可维护、对扩展开放并遵循软件工程的最佳实践,遵循设计模式非常重要。

java逻辑和android逻辑有什么区别?因为我们只是通过使用任何设计模式将 java 与 android 逻辑分开以获得更好的测试环境。举个例子。

Ans:没有所谓的Java逻辑和Android逻辑。

【讨论】:

  • 你能告诉我......任何设计模式中的层是什么?在任何设计模式中,我们将使用多少个最小层来制作一个项目?尽可能多的层有什么好处?
  • @AbhishekKumar 取决于您尝试使用的设计模式。设计模式是软件工程师多年来为解决特定类型问题而遵循的最佳实践的结果。您可以使用多种设计模式来解决您的问题。因此,没有硬性规定必须具有这么多的层数。例如单例模式只有一层。
  • 我的问题仍然存在......你所说的“层”是什么意思?是“模型”、“视图”和“演示者”层吗?在那种情况下,如果我们使用 MVP,我们有一个 3 层结构?如果我错了,请纠正我。
  • 如果可能的话...请查看我更新的问题并更新您的答案
猜你喜欢
  • 2011-11-14
  • 2023-03-25
  • 2020-08-04
  • 2018-10-23
  • 2011-02-22
  • 2021-03-16
  • 2016-11-20
  • 2019-01-25
  • 2011-06-11
相关资源
最近更新 更多