你知道GUI编程的任何模式吗? (不是设计GUI的模式)

时间:2008-08-14 16:09:55

标签: user-interface design-patterns

我正在寻找与编码GUI部分有关的模式。 MVC 一样全球,我非常熟悉,但有关单一控件和输入的模式,好主意和最佳实践。

假设我想制作一个显示可能重叠的对象的控件。现在,如果我点击一个对象,我需要找出该做什么(只是找到我可以用几种方式做的对象,比如四叉树和Z顺序,这不是问题)。而且我也可以按住修改键,或者某个对象从一开始就处于活动状态,使选择或任何更复杂。我应该有一个表示屏幕对象的对象实例,在单击时处理用户操作,还是主类。等等。这样的问题有哪些模式或解决方案?

6 个答案:

答案 0 :(得分:5)

我认为老实说,您可以更好地了解标准设计模式,并将其应用于您在开发UI时遇到的各个问题。

虽然存在常见的UI“主题”(例如处理修饰键),但实际实现可能会有很大差异。

我有O'Reilly的Head First Design PatternsThe Poster,我发现它非常宝贵!

无耻插件:这些链接正在使用我的同事ID。

答案 1 :(得分:5)

Cay Horstmann的面向对象设计和模式有一章题为“模式和GUI编程”。在该章中,霍斯特曼涉及以下模式:

  • 观察者布局管理员和
  • 策略模式组件,
  • 容器和复合模式
  • 滚动条和装饰器图案

答案 2 :(得分:1)

我不认为设计模式的好处来自于试图找到适合问题的设计模式。但是,您可以使用一些启发式方法来帮助清理您的设计,例如保持UI尽可能与系统中的其他对象分离。

在这种情况下,有一种模式可能会有所帮助,Observer Pattern

答案 3 :(得分:1)

也许你正在寻找像我在一些关于codeproject的文章中看到的'MouseTrap'这样的东西(搜索UI平台)?

我还发现这个系列非常有用http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/,您可以查看嵌入式控制器等。

米莎。

答案 4 :(得分:1)

您正在寻找专业的应用程序编程。我找了很长时间的提示和技巧,没有成功。遗憾的是,您找不到任何有用的东西,这是一个复杂的主题,只有多年的经验,您才能理解如何有效地编写应用程序。例如,几乎每个程序都打开一个文件,提取信息,以不同的形式显示它,允许处理,保存......但没有人确切地解释了什么是好策略等等。此外,如果您正在编写一个大型应用程序,则需要查看一些策略以减少编译时间(否则您将在每次编译时等待数小时)。例如,C ++中的习语可以帮助你。还有更多。出于这个原因,软件开发人员报酬很高,而且有很多工作: - )

答案 5 :(得分:1)

我知道你说不像MVC那样全球化,但MVC有一些变化 - 特别是HMVC和PAC - 我认为它可以回答诸如你所提出的问题。

除此之外,即使您不直接应用它们,也要尝试在现有模式的“精神”中编写新代码。