组织GUI代码

时间:2009-05-07 18:18:33

标签: user-interface code-organization

我的问题分为两部分:

  • 有没有人对网上有关如何编写易于阅读,编写和维护的GUI代码的文档有任何提示或参考?

    示例。

    我发现我的GUI表单越广泛,我最终得到了一长串相当短的事件处理程序方法。如果我尝试添加任何私有助手方法,他们只会在随机播放中丢失,我不得不在页面上滚动以遵循一条思路。


  • 如何在整个应用程序中轻松管理设置?

    示例。

    如果用户在下拉列表中选择了一个新项目,我可能需要在GUI上启用一些组件,更新应用程序配置文件,并将新值存储在本地变量中以供日后使用。我通常选择不为所有设置创建事件处理程序(见上文),最后使用“LoadGUISettings”和“SaveGUISettings”之类的方法,但最后我最终在我的代码中调用这些方法,并且它经历了很多次代码只是为了更新很少的(如果有的话)实际更改。

谢谢!

3 个答案:

答案 0 :(得分:6)

从OO的角度来看第一个问题的一些指导原则:

  • 将较大的类拆分为较小的类。该面板是否有一堆相当模块化的子面板?为每个子面板创建一个较小的类,然后让另一个更高级的类将它们放在一起。
  • 减少重复。您有两棵共享功能的树吗?做一个超类!您的所有事件处理程序是否都在做类似的事情?创建一个他们都呼叫的方法!

第二个问题。我看到两种方法:

  • 听众。如果许多组件应该响应一个组件中发生的更改,请让该组件触发事件。
  • 全局变量。如果许多组件正在读取和写入相同的数据,请将其设置为全局(但是您可以使用所选语言执行此操作)。为了获得额外的实用性,请结合使用这两种方法,让组件监听全局数据对象中的更改。

答案 1 :(得分:3)

如果您使用的是WPF,则可能需要阅读Composite Application Guideance for WPF

它讨论了许多这些主题(以及许多其他主题)。该指南的主要目标是以灵活,可维护的方式进行大规模应用。

答案 2 :(得分:0)

您一定要看Jeremy Miller's guide富客户端设计。这是不完整的,但我相信他正在写一本关于这个主题的书。

您应该查看的另一个博客是Rich Newman's。他正在撰写关于复合应用程序块的文章,这是关于如何构建富客户端的MS最佳实践指南。

你也可以阅读this book,这只是一个非常简单的阅读,但给你一些好主意。