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

  1. GUI
  2. 即时消息
  3. 计算

本质上,需要有完整的通信,所以我们决定使用调解方法而不是比让GUI运行的整个项目。

基本上,调解人是要封装的通信。问题我们碰到的是怎样让GUI组件的更新而建立一吨的方法用于调解人随时调用的东西完成。

前。说GUI想要登录用户,它通过调解来创建一个线程和日志,但后来的调解人已继成功/未回到GUI以及更新状况信息。

其他问题的事情,需要更新GUI但不需要主持人。是它实际只是允许的图形用户界面,创建一个实例,类和运行或应该的一切去通过调解员?

我们原始的设计只有GUI管理的一切,但它真的杀了可重复使用性。是否有更好的设计要使用的方法,在这种情况下?

有帮助吗?

解决方案

如果你在找观察员带来太多的开销,调解人可能是最好的路要走。我肯定认为你不应该GUI。如果你要使用模式的调解人,调解人本身也应该负责。有些东西你可能会考虑的一个变种命令的模式。如果你们使用红宝石,我可能让你穿功能回围绕为了避免具有调解人接触GUI对于每一件小事。但是,由于它的爪哇,某些形式的封装一个行动指令模式可能会有所帮助。

其他提示

如果你不想回调/通知triggerd通过调解人,你可以注射的回调入的登录的功能,并已登录叫它的时候它完成。

我不知道你怎么会去注射的回调,虽然。在一个语言功能的第一类公民,你可能仅仅通过的功能,但你在Java所以我猜你会必须使用该指令模式作为kmorris建议。

你也可以尝试的具有GUI给调解员回调对象,处理检索的回报价值观,或设置任何你需要(a版本的命令图案)。那里将是一个每次呼叫从GUI的调解人。

另一个想到的是小组的方法调解人呼吁为在语义上相关的区块。特别是如果调解员已经部分,它往往叫几个闺方法中的一个行:

   gui.a()
   gui.b()
   gui.c()

你可以创建一个单一的方法处理的结果呼吁所有三个。优势的语义进行分组的方法(即 setFileInformationsetFileMenu, setTab, 等)。 也是那么如果需要改变GUI内容的方法可能会改变,但通话的调解员使得不可能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top