【发布时间】:2012-04-27 23:49:51
【问题描述】:
我有一个带有很多控件的 GUI 应用程序。它们中的大部分都有事件,并且控件在逻辑上连接到每个那里。 例如,我有 5 个组合框。 如果我在 cb1 和 cb3 中选择某些东西,它们 cb2 必须更改其可用值的列表。 如果我在 cb2 和 ch4 中选择某些东西,它们 cb5 必须加载其可用值列表。 我在网上找到的所有文章都说在这种情况下我应该使用 mediator 模式。 但是在所有这些文章中,调解员 - 就像一个上帝类,它了解所有控件的一切,并决定在发生某些事件时应该做什么。 如果我有 5-6 个控制器 - 一切都很好。 但是如果我有 20 或 40 个控件呢?我猜在这种情况下,中介类会变成怪物。很难用它做点什么(修改或添加新功能)。
是否有任何其他模式或中介路径的好例子,这将有助于解决这种情况?
PS:抱歉,如果已经有关于这个主题的问题 - 同名的问题太多了,从所有这些主题中找到我真正需要的东西并不容易。
【问题讨论】:
-
实际上 20-40 个控件可能会导致非常复杂的 Mediator。但是,Mediator 有明确的职责,这比将逻辑分散到多个类中更容易理解。您问题中的红旗不是由于20-40个控件而导致的神级风险,而是首先允许20-40个控件的GUI设计。
-
Fuhrmanator,我的情况是处理一些商业文件(发票、合同等)的表格很大。所以,有很多领域,用户必须使用。对于用户来说,使用一屏信息会更方便。所以,如果我试着说“好的,现在你将有 3\5 个表单\屏幕\窗口。在第一个中填写此信息,在第二个中填写该信息。”用户会找到其他一些开发者\公司,而不是改变那里的习惯。而且,无论如何,这个主题是另一个主题,我猜 :)
标签: java design-patterns architecture