【问题标题】:Organizing GUI code组织 GUI 代码
【发布时间】:2009-05-07 18:18:32
【问题描述】:

我的问题分为两部分:

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

    示例。

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


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

    示例。

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

谢谢!

【问题讨论】:

  • 我也很想听听专家的建议。我应该研究的模式、我应该阅读的书籍、我应该学习的框架,对于像我这样的 GUI 编程新手来说,所有这些都是很好的提示。
  • 您使用什么语言?
  • 我在 Borland C++ 中工作时遇到了最大的挫败感,但我认为这是我一直在努力解决的问题。

标签: user-interface code-organization


【解决方案1】:

第一个问题的一些准则,从 OO 的角度来看:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 很遗憾,我没有使用 WPF,但我一定会检查一下,也许我可以提取一些好的信息并将其应用到我的应用程序中。
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 2018-10-12
      • 2011-08-08
      • 1970-01-01
      • 2011-06-04
      • 2014-01-29
      相关资源
      最近更新 更多