我对一个复杂的GUI应用程序的架构有疑问。
我正在创建这样的应用程序,并且有许多窗口经常相互交互,我面临着需要引用其他窗口的问题。 管理这些窗口的最佳方法是什么?
首先想到我想出的是创建全局单例共享所有窗口引用(并将它们封装在getter / setter中),每个窗口只能引用它,让我们说'窗口管理器' - 但通常我不会就像那种类型的编程(我是反全局的:P),我认为它是坏并且不安全。
我缺少任何范例/设计模式吗?
感谢任何有用的提示,
Maciek
答案 0 :(得分:0)
听起来很复杂。
如果您需要在窗口之间进行通信,那么我建议您使用事件。
表单1引发一个事件,表单2响应它。在事件args中传递所需的详细信息。
这样就不再需要以其他形式引用每个表单了。
答案 1 :(得分:0)
您需要一个应用程序范围的“控制器”。可以把它想象成一个中央DNS。它不一定是一个特殊的“全球单身人士”。您的应用程序已经拥有其中一个(应用程序的根对象)。只需让它管理一个窗口列表。