6

我正在寻找涉及 GUI 编码部分的模式。不像我非常熟悉的MVC那样全球化,而是关于单个控件和输入的模式、好的想法和最佳实践。

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

4

6 回答 6

5

老实说,我认为你最好只了解你的标准设计模式并将它们应用于你在开发 UI 时面临的个别问题。

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

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

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

于 2008-08-14T16:18:10.553 回答
5

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

  • 观察者布局管理器和
  • 策略模式组件,
  • 容器和复合模式
  • 滚动条和装饰器模式
于 2010-06-08T16:41:41.927 回答
1

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

在这种情况下,有一种模式可能会有所帮助,即观察者模式

于 2008-08-14T16:19:21.360 回答
1

也许您正在寻找类似于我在一些关于 codeproject 的文章中看到的“MouseTrap”(搜索 UI 平台)?

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

米查。

于 2008-10-21T08:58:04.227 回答
1

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

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

于 2008-11-26T20:07:14.547 回答
1

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

于 2012-08-06T09:03:44.940 回答