model-view-controller - MVC/MVP 中的 Controller 间通信

标签 model-view-controller workflow mvp

MVC/MVP 中松耦合 Controller 间通信的好方法是什么?

例如,在 Quote 中,用户必须创建并添加新联系人,或添加现有联系人。

他们选择创建一个新联系人。完成后,联系人将添加到报价中,并且 UI 将用户返回到该报价。如果他们点击取消,他们将返回到报价。

我想在其他地方重新使用 Contact,因此它不应该知道 Quote 的任何信息。例如,如果我从联系人列表中创建了一个联系人,它应该在完成后返回那里。

以下是我想到的一些选项:

  • ContactsController Action 调用 ApplicationController.getNextStep(this),ApplicationController 代表 ContactsController 计算出下一步
  • ContactsController 引发“actioncomplete”事件或类似事件,ApplicationController 正在监听此事件,并调用正确的下一步
  • QuoteController 将“指挥棒”传递给下一步的 ContactsController,ContactsController 在完成后调用
  • ContactsController 引发“actioncomplete”事件或类似事件,并且 QuotesController 正在监听此事件,并调用正确的下一步。

  • 你有这些经验吗?其他想法?在大型应用程序中,哪个会引起最少的头痛?

    谢谢!

    最佳答案

    您可以实现某种形式的导航堆栈,首先将 Quote 或 Contacts Controller 插入其中,然后在需要时将 Contact Controller 插入其中。当 Contact Controller 完成后,它会自动弹出并在下一个达到峰值以知道去哪里。这样它就完全解耦了,可以在任何地方重复使用,并且可以嵌套 n 级深。

    关于model-view-controller - MVC/MVP 中的 Controller 间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9268653/

    相关文章:

    c# - Rotativa MVC 不在 PDF 上加载 CSS 或图像

    design-patterns - 围绕用户工作流程构建 Web 应用程序

    Android MVP-Architecture 如何使用SQLiteHelper在模型中进行数据库调用

    android - 我想使用 MVP 设计模式为 android 构建手动 camera2 应用程序。如何?

    Android 架构问题

    json - 从 json 到枚举的 Mvc 绑定(bind)问题(从 int 到枚举的自定义异常)

    java - OSGI 的 MVC Web 容器?

    c# - 分层应用程序中的验证

    xaml - 查询状态机中可能的 future 状态的当前状态

    Git - 如何有选择地将更改从一个分支应用到另一个分支?