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

8
我正在寻找与GUI编码部分有关的模式。不像MVC那样全局,我对它非常熟悉,而是关于单个控件和输入的模式、良好想法和最佳实践。
比如说,我想制作一个显示可能重叠的一些对象的控件。现在,如果我点击一个对象,我需要找出该做什么(只要找到对象,我可以用几种方法,如四叉树和Z顺序,这不是问题)。同时,我可能会按住修改键,或者一些对象从一开始就处于活动状态,使选择或其他操作变得更加复杂。我应该拥有一个代表屏幕对象的对象实例,在被点击时处理用户操作,还是一个主类等等……针对这类问题有哪些模式或解决方案?
6个回答

6

Cay Horstmann的《对象导向设计与模式》一书中有一章名为“模式和GUI编程”。在这一章节中,Horstmann提到了以下几种模式:

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

6

我认为,老实说,你最好熟悉标准设计模式并将它们应用于开发UI时遇到的个别问题。

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

我有O'Reilly的Head First Design PatternsThe Poster,我发现这些非常有价值!

无耻的广告:这些链接使用我的联盟ID。


1
《Head First 设计模式》是一本很棒的书,虽然我对这个笑了 - http://fishbowl.pastiche.org/2005/08/12/the_head_first_girls_double_life/ - David
我也有《Head First 设计模式》。我发现它以有趣的方式学习基本模式非常好。 - FrenchData
HFDP现在已经在我的亚马逊愿望清单上了...等我完成Jon Skeet的《我需要掌握C#》;) - IAbstract
4
关于你的 Shameless Plug:不,他们并没有 :) StackOverflow 用他们自己的推荐 ID 替换了你的。 - Marek
1
所有你的内容都属于我们。 - learnvst

2

我知道你说的不如MVC那么全面,但是有一些与MVC相关的变体,比如HMVC和PAC,我认为可以回答你提出的问题。

除此之外,即使没有直接应用这些模式,也要在现有模式的“精神”下编写新代码。


2

2
我认为设计模式的好处并不在于试图找到一个适合问题的设计模式。但是你可以使用一些启发式方法来帮助清理你的设计,比如尽可能将用户界面与系统中其他对象解耦。
在这种情况下,有一个模式可能会有所帮助,那就是观察者模式

2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接