问题标签 [mediator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6419 浏览

language-agnostic - 什么时候使用调解器设计模式

正如标题所述,您何时会推荐使用中介者设计模式,您认为它在哪里使用不正确?

0 投票
8 回答
23379 浏览

design-patterns - 立面与调解员

我一直在研究这两种模式之间的区别。

我知道外观封装了对子系统的访问,而中介封装了组件之间的交互。

我知道子系统组件不知道外观,而组件显然知道中介。

我目前正在使用外观来封装检索配置信息的方法,例如 App.Config、存储在 SQL 中的用户设置、程序集信息等,以及用于在不同窗体之间导航的中介。

然而,大多数网站都指出中介“增加了功能”。他们这是什么意思?中介如何添加功能?

0 投票
1 回答
233 浏览

design-patterns - OCaml 中的中介者设计模式

我正在尝试在 OCaml 中完成两个类之间的相互绑定(a la Mediator Pattern's),并且在编译时出现错误。

错误:类构造函数同事需要 1 个类型参数,但在这里应用于 0 个类型参数。

我不能说我对类定义中的 ['foo] 语法非常熟悉,但是在试图让调解员保留对所有同事和每个同事的引用时,我已经求助于它(无济于事)它各自的中介,同时也试图克服源代码中类定义的重要性。我该如何让同事保留对他们调解员的参考?

0 投票
3 回答
632 浏览

design-patterns - 中介者模式或责任过多

在我的应用程序中,我有几个必须相互了解的组件,例如菜单栏和工具栏,它们都需要了解表格以添加或删除作业并找出选择了哪个作业。

因此,我创建了一个名为的对象guiMediator,我将其传递给每个对象,并且他们使用它注册自己,以便他们可以使用该对象相互联系。它还负责在添加新工作或后台工作人员完成工作时触发事件。

既然对系统了解很多,那么这种用法是不是在一个地方责任太大了,还是这个模式的正确用法呢?

0 投票
3 回答
1102 浏览

java - 中介者模式在这种情况下有效吗?

所以对于我目前的项目,基本上有三个主要的 Java 类:

  1. 图形用户界面
  2. 即时通讯
  3. 计算

本质上,需要充分的沟通,所以我们决定使用中介方法,而不是让 GUI 运行整个项目。

基本上,中介将封装通信。我们遇到的问题是如何允许 GUI 组件更新,而无需构建大量方法供中介在任何事情完成时调用。

前任。假设 GUI 想要登录用户,它通过中介创建一个线程并登录,但是中介必须将成功/失败转发回 GUI 并更新状态消息。

另一个问题是需要更新 GUI 但不需要主持人的事情。只允许 GUI 创建该类的实例并运行它是否可行,或者一切都应该通过中介?

我们最初的设计只是让 GUI 管理一切,但它确实扼杀了可重用性。在这种情况下是否有更好的设计方法可以使用?

0 投票
1 回答
201 浏览

apache-flex - pureMVC:界面中每个选项卡的唯一中介

我正在构建一个用于在各种相似层之间切换的选项卡式界面。每一层都会有许多图表。通过用鼠标拖动,图形可以重新排列,甚至可以在图层之间移动。我的问题是,最好的做法是为每一层注册一个唯一的中介来跟踪层的内容/组织,还是我应该用一个中央中介来跟踪它。

一些考虑:

图层内容和组织将被保存(在数据库中),以便在用户返回应用程序时可以恢复。

这些层本身在功能上是相同的。

用户可以随意添加和删除图层。

谢谢!

0 投票
3 回答
1807 浏览

c# - 使用中介者模式进行单元测试——所有私有到公共

我正在使用中介者模式来促进 GUI 对象的单元测试。

伪代码示例:

这很好,因为我现在可以对按下 SomeButton 时发生的情况进行单元测试,而无需创建窗口。

我担心的是,我采用了一种私有的方法,并将其公开给任何让 Mediator 调用的人。过去我这样做并没有打扰我,因为我没有太多必须公开的方法。

我目前正在重构一个非常大的类以使用这种模式,我想知道是否有某种方式可以控制谁可以创建 MyMediator 或哪些类的某些方法是公共的可见性。(这可能是不可能的,甚至是不需要的,但我想我会问。)

(我将 C# 3.0 与 .NET 3.5 SP1 一起使用)

0 投票
2 回答
1211 浏览

wpf - MVVM 中介多实例

有人可以解释中介模式如何与多个实例一起工作。

我在视图中的代码:

在 ViewModel 中:

只要只有一个 View - ViewModel 对的实例,就可以找到此方法。

如何通过多个实例解决它?

0 投票
6 回答
37998 浏览

wpf - WPF MVVM 对话框示例

有没有人有任何使用 MVVM (Prism) 显示窗口对话框的例子?- 例如,执行命令时的配置设置窗口。

我见过的所有示例都使用了很好的中介模式,但它们也都引用了视图模型中的视图,这并不理想(我们使用的是 DataTemplates)

谢谢

0 投票
2 回答
875 浏览

apache-flex - Flex PureMVC:中介者未注册

在运行时创建一个组件,并创建和注册一个中介。一切都很好。

在单独的视图中,将创建该组件的另一个实例。调解器已创建,但第二次未调用 onRegister()。我不知道这是否正常......但如果是,我如何让它第二次调用 onRegister() ?谢谢。:)