我正在寻找与 GUI 的编码部分有关的模式。 不是 与全球一样 多维控制器, ,我非常熟悉,但是关于单一控制和输入的模式、好的想法和最佳实践。

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

有帮助吗?

解决方案

说实话,我认为你最好只是深入研究标准设计模式,并将它们应用于开发 UI 时遇到的个别问题。

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

我有奥莱利的 首先设计模式海报, ,我发现这是无价的!

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

其他提示

Cay Horstmann 的《面向对象设计和模式》有一章题为“模式和 GUI 编程”。在那一章中,霍斯特曼谈到了以下模式:

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

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

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

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

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

也许您正在寻找类似“MouseTrap”的东西,我在codeproject(搜索UI Platform)上的一些文章中看到了它?

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

米夏.

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top