java - 我无法理解鲍勃叔叔书中的整洁架构部分(MVP)

标签 java mvp clean-architecture gwt-mvp

我读了鲍勃叔叔的《整洁架构书》。我尝试实现简单的例子。我有这个图:

enter image description here

我不明白如何实现红线部分。例如,我有一个简单的网页:

enter image description here

我有 2 个按钮、一个已编辑的文本和一个标签。如果我按下发送到服务器按钮 - 来自编辑文本的文本将发送到服务器。如果我按从服务器获取按钮 - 我会加载消息并在标签中播种。

如果我单击第一个按钮(发送到服务器)会发生什么?我的 View 调用演示者或 Controller ?

如果我相信图表的话 - 我的 Web View 不知道演示者。它只知道屏幕 View 接口(interface)(它实现了这个接口(interface))。演示者也了解屏幕 View 界面。但演示者尚未链接到 Controller 。如何将文本从编辑文本框传递到 Controller 或交互?

最佳答案

也许这不是解释 View 、演示者和 Controller 的最佳图片。他的书中还有其他图片更清楚地表明

  • View 向 Controller 发送请求对象
  • Controller 与业务逻辑交互
  • 业务逻辑将响应模型传递给演示者
  • 演示者更新 View 观察到的 View 模型

所有这些协作都是通过尊重依赖规则(通常使用控制反转)来实现的。

有关 View 、 Controller 和演示者交互的更详细描述,请参阅我的博客:http://www.plainionist.net/Implementing-Clean-Architecture-Controller-Presenter/

关于java - 我无法理解鲍勃叔叔书中的整洁架构部分(MVP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58239166/

相关文章:

java - 在Java中将字节转换为字符串

java - 找不到导入 junit jupiter api

c# - 使用 EntityFramework : Context per Presenter or long conversation pattern for Windows Forms Applications?

wpf - MVC/MVP/MVVM 什么鬼?

go - 如何按照Clean Architecture在Golang中实现presenter?

haskell - 使用类型类在 Haskell 应用程序中实现依赖倒置?

java - 替换 Checkstyle 已弃用的 Gradle LoggingManager.setLevel()

java - 为什么演示中同步工作时 ReentrantLock 不起作用?

cocoa - Cocoa MVC 真的不是 MVP 吗?

java - 如何为 void 方法创建单元测试,该方法仅更改数据并保存它