11

我的问题有两个部分:

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

    例子。

    我发现我的 GUI 表单变得越广泛,我最终会得到一长串相当短的事件处理程序方法。如果我尝试添加任何私有帮助方法,它们只会在洗牌中迷失,我必须不断地滚动页面以遵循单一的思路。


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

    例子。

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

谢谢!

4

3 回答 3

7

从面向对象的角度来看,第一个问题的一些指导方针:

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

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

  • 听众。 如果许多组件应该响应一个组件中发生的更改,请让该组件触发一个事件。
  • 全局变量。如果许多组件正在读取和写入相同的数据,请将其设为全局(但是您可以使用您选择的语言来执行此操作)。为了更有用,将这两种方法结合起来,让组件监听全局数据对象的变化。
于 2009-05-07T18:37:46.927 回答
3

如果您使用的是 WPF,您可能需要阅读WPF 的复合应用程序指南

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

于 2009-05-07T18:23:39.770 回答
0

你绝对应该看看Jeremy Miller 的富客户端设计指南。它不完整,但我相信他正在写一本关于这个主题的书。

您应该查看的另一个博客是Rich Newman 的. 他正在撰写有关如何构建富客户端的 MS 最佳实践指南 Composite Application Block。

你也可以阅读这本书,它只是一本非常轻松的书,但会给你一些好主意。

于 2009-05-07T18:37:02.077 回答