在GUI架构中管理许多窗口

时间:2011-11-26 09:30:18

标签: user-interface architecture window

我对一个复杂的GUI应用程序的架构有疑问。

我正在创建这样的应用程序,并且有许多窗口经常相互交互,我面临着需要引用其他窗口的问题。 管理这些窗口的最佳方法是什么?

首先想到我想出的是创建全局单例共享所有窗口引用(并将它们封装在getter / setter中),每个窗口只能引用它,让我们说'窗口管理器' - 但通常我不会就像那种类型的编程(我是反全局的:P),我认为它是并且不安全。

我缺少任何范例/设计模式吗?

感谢任何有用的提示,

Maciek

2 个答案:

答案 0 :(得分:0)

听起来很复杂。

如果您需要在窗口之间进行通信,那么我建议您使用事件。

表单1引发一个事件,表单2响应它。在事件args中传递所需的详细信息。

这样就不再需要以其他形式引用每个表单了。

答案 1 :(得分:0)

您需要一个应用程序范围的“控制器”。可以把它想象成一个中央DNS。它不一定是一个特殊的“全球单身人士”。您的应用程序已经拥有其中一个(应用程序的根对象)。只需让它管理一个窗口列表。