哪种设计模式可以管理windows?

时间:2010-05-11 03:16:13

标签: c# .net design-patterns

我正在使用.NET 2.0& C#开发WinForm Mdi应用程序。它将有一个主窗口和许多mdi窗口。我在想我应该使用哪种设计模式来管理mdi窗口。因为我只想为每个窗口设置一个实例,如果窗口存在,我会在顶部显示,&否则我会创建并展示它。

注意:从主窗口菜单打开mdi窗口或从另一个mdi窗口打开。一个例子非常好。

更新:菜单的状态取决于mdi窗口的状态。例如:如果窗口'A'打开 - >菜单'A' - >禁用。当窗口'A'关闭时 - >我将菜单'A'状态更新为已启用。

感谢。

2 个答案:

答案 0 :(得分:2)

我建议仔细阅读Martin Fowler's page on GUI Patterns.

您将找不到快速示例,但问题集再次无法保证快速解决方案。您需要花一些时间了解可用的不同UI设计模式,并在应用程序中做出最明智的决策。

Martin Fowler的网站将为您提供足够的信息,以便至少开始您的旅程。你可以通过查看Jeremy Miller's series获得特定的.Net示例来深入了解。

同样,对于这些角落中的任何一个都没有快速解决方案,但从行业领导者那里学习是值得的。

答案 1 :(得分:1)

我不认为你会找到一种解决问题的模式,但会是模式的合作。 Josh提供的链接很有趣。

基于GoF模式的简单建议如下:

  • 使用命令模式处理您的 菜单点击事件
  • 使用工厂模式创建窗口。你可以定制你的工厂 所以它只创造单一 使用窗口的实例 单身模式的方法
  • 使用Subject-Observer模式作为菜单状态。 MDI子窗口 将成为你需要的主题 构建你的代码以便你 可以嵌入你的观察者逻辑 菜单控制器。
相关问题