首页 / 知识
关于用户界面:您知道GUI编程的任何模式吗? (不是设计GUI的模式)
2023-04-12 05:21:00

Do you know any patterns for GUI programming? (Not patterns on designing GUIs)我正在寻找与GUI的编码部分有关的模式。我不熟悉MVC的全局性,但是涉及单个控件和输入的模式,好主意和最佳实践。 让我说说我想做一个显示一些可能重叠的对象的控件。现在,如果我单击一个对象,则需要找出要执行的操作(只需找到可以以几种方式执行的对象,例如四叉树和Z轴顺序,那就不是问题了)。而且我可能会按住修改键,或者从一开始就激活了某个对象,从而使选择或其他操作变得更加复杂。我应该拥有一个代表屏幕对象的对象实例,单击时处理用户操作还是主类。等等。针对此类问题有什么样的模式或解决方案? Cay Horstmann撰写的 面向对象的设计和模式有一章,标题为"模式和GUI编程"。在该章中,霍斯特曼谈到了以下模式:
老实说,我认为最好是精通标准设计模式,并将其应用于开发UI时遇到的单个问题。 尽管存在常见的UI"主题"(例如处理修饰键),但实际的实现方式可能相差很大。 我有O'Reilly的Head First设计模式和The Poster,我发现它们非常宝贵! Shameless Plug:这些链接正在使用我的同事ID。 您正在寻找专业的应用程序编程。我搜索了很长时间的技巧和窍门,但没有成功。不幸的是,您将找不到有用的东西,这是一个复杂的主题,只有多年的经验,您才能了解如何有效地编写应用程序。例如,几乎每个程序都会打开一个文件,提取信息,以不同的形式显示它,允许进行处理,保存等,但是没有人确切说明什么是好的策略等等。此外,如果您正在编写一个大型应用程序,则需要查看一些策略来减少编译时间(否则,每次编译都将等待数小时)。例如,C语言中的Impls习语可以帮助您。然后还有更多。因此,软件开发人员的薪水很高,而且有很多工作:-) 我知道您说的并不像MVC那样具有全局性,但是MVC上有一些变化,特别是HMVC和PAC,我认为它们可以回答诸如您提出的问题。 除此之外,即使您不直接应用现有代码,也请尝试"本着精神"编写新代码。 也许您正在寻找类似'MouseTrap'之类的东西,我在codeproject上的一些文章(搜索UI平台)中看到过? 我还发现该系列非常有用http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/您可以在其中查看在嵌入式控制器等上。 Micha。 我不认为设计模式的好处来自试图找到适合问题的设计模式。但是,您可以使用一些启发式方法来帮助您清理设计,例如保持UI与系统中其他对象的分离尽可能远。 在这种情况下,有一种模式可能会有所帮助,即观察者模式。 |
最新内容
相关内容
python如何设置编码格式
python如何设置编码格式,代码,培训,一致,声明,文件,头部,格式,注释,中文,以下,如果要在python2的py文件里面写中文,则必须要添加一行声明文件python学习python编程可以从事什么
python学习python编程可以从事什么工作岗位,工作,分析,网络,数据,数字,行政,销售,培训,资产,庞大,一、学Python编程能做的工作,编程方向:1、Webpython网络编程及前端常见问题
python网络编程及前端常见问题,数据,服务,分析,培训,状态,前端,区别,服务器,常见问题,上面,当我们学习Python时,需要掌握的的知识有很多,除了有python可以做网页编程吗?
python可以做网页编程吗?,技术,公司,数据,网络,人工智能,工资,分析,工作,设计,市场,什么是Python? Python是一种计算机编程语言,也是一种python有哪些设计模式?
python有哪些设计模式?,设计,策略,工厂,系统,代码,统一,培训,模式,软件,通信,设计模式大家一定很熟悉,它是一套被反复使用、多数人知晓的、经过python编程平台免费吗
python编程平台免费吗,代码,培训,平台,设计,初级,语言,解释性,提示符,标点符号,可读性,python是免费的,也就是开源的。注:python是一个高层次的pythonpython是函数式编程吗?
pythonpython是函数式编程吗?,培训,代码,函数,指数,状态,概念,变量,语言,计算机,程度,函数是Python内建支持的一种封装,我们通过把大段代码拆python怎么处理Python字符编码转换
python怎么处理Python字符编码转换?,培训,长城,系统,字符,意义,方式,这一点,字符串,字节,表示,python有strobject和unicodeobject两种字符串,python怎么将图片转换成base64编码
python怎么将图片转换成base64编码,培训,图片,数据,数字,字符串,字符,接口,模块,功能,方法,该模块提供了基于rfc3548的Base16,32,64编解码的python怎么实现模式匹配
python怎么实现模式匹配,培训,时间,代码,算法,字符,模式,复杂度,向量,空间,两个,python通过BF算法实现关键词匹配,BF算法,即暴风(BruteForce)算python怎么处理字符编码问题
python怎么处理字符编码问题,数字,数据,标准,培训,证书,字符,字节,字符串,方法,倍数,python中可以使用base64来处理字符编码问题,Base64是一种python凯撒密码python编程简单
python凯撒密码python编程简单,密码,代码,培训,信息,字母,字符串,大写字母,赋值,明文,古罗马,凯撒密码python编程简单1、说明凯撒密码是古罗