组织GUI代码

11

我的问题有两个部分:

  • 是否有任何提示或参考文献,关于如何编写易于阅读、编写和维护的GUI代码?

    例如。

    我发现,随着我的GUI表单越来越复杂,我会得到一长串相当短的事件处理程序方法。如果我尝试添加任何私有助手方法,它们只会在洗牌中丢失,我不断地在页面上滚动以跟踪单个思路。


  • 如何轻松管理应用程序的设置?

    例如。

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

谢谢!


我也很想听听专家的建议。对于像我这样刚入门GUI编程的人来说,应该学习哪些模式、读哪些书、掌握哪些框架等等,所有这些都将是很好的提示。 - Brian Sweeney
你正在使用哪种编程语言? - Jere.Jones
我在使用Borland C++工作时达到了最大的沮丧点,但这是我认为我一直在努力克服的东西。 - jeremyalan
3个回答

7

从面向对象的角度来看,对于第一个问题,有一些指导原则:

  • 将大类分解为小类。那个面板有一堆相当模块化的子面板吗?为每个子面板创建一个较小的类,然后再创建另一个更高级别的类将它们组合在一起。
  • 减少重复。你有两棵树共享功能吗?创建一个超类!你所有的事件处理程序都在做类似的事情吗?创建一个它们都调用的方法!

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

  • 监听器。如果许多组件应该响应在一个组件中发生的更改,请让该组件触发事件。
  • 全局变量。如果许多组件正在读取和写入相同的数据,请将其设置为全局变量(以您选择的语言方式)。为了增加其实用性,结合这两种方法,让组件监听全局数据对象的更改。

3
如果您正在使用WPF,您可能需要阅读WPF组合应用指南。该指南讨论了许多这些主题(以及许多其他主题)。该指南的主要目标是以灵活、可维护的方式创建大型应用程序。

很遗憾,我目前并没有使用WPF,但我一定会去了解一下,或许能够提取一些有用的信息并应用到我的应用程序中。 - jeremyalan

0

你绝对应该看一下Jeremy Miller的向导,了解关于丰富客户端设计的内容。虽然不完整,但我相信他正在撰写一本关于这个主题的书。

另一个你应该查看的博客是Rich Newman的。他正在撰写关于组合应用程序块的文章,这是微软最佳实践指南,教你如何构建丰富的客户端。

你还可以阅读这本书, 它只是一本非常简单的读物,但会给你带来一些好的想法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接