常见的GUI框架展示了哪些软件设计模式?

jdi*_*jdi 6 user-interface frameworks design-patterns

我7年多来一直是一名python程序员,并且已经使用PyQt设计了3年多......但我不是一个经典训练的Comp Sci.重大的.最近,我一直在学习Go并积极关注Golang-nuts讨论列表,该列表充满了非常聪明的开发人员.从这个讨论组中,我看到了许多对软件设计模式的引用,例如Observer,Reactor等.再次因为我不是CS专业,我从未真正学过所有这些术语和理论,但它让我想知道.. .

Qt,wx,GTK等常见GUI框架有哪些设计模式?

我感觉它是不同组件的混合模式,例如事件循环与信号/槽或绑定与键值观察等等.我很想听听有关这些软件模式如何映射到这些框架的传统组件的解释或概括.

作为这个问题的一个次要元素:是否有GUI框架试图采用完全不同的模式方法来实现GUI解决方案?Cocoa/objective-c是否使用与其他事件相同的事件循环模式?

更新
为了帮助缩小我的问题的重点,并根据@HDDimon的答案,我主要想知道行为模式(沟通):http:
//en.wikipedia.org/wiki/Design_Patterns#Behavioral_patterns

Dmi*_*kin 5

美好的一天.我认为您将在Martin Fowler文章GUI架构中找到最佳答案.

来自这篇文章:

模型视图控制器 UI开发中最广泛的引用模式可能是模型视图控制器(MVC) - 它也是最错误引用的模式.我已经失去了我曾经看过一些被描述为MVC的东西的数量,结果证明它并不像它.坦率地说,很多原因是这些天经典MVC的部分对富客户来说真的没有意义.但目前我们将看看它的起源.

MVC的核心,以及对后来的框架有影响力的想法,就是我所说的分离演示.分离演示背后的想法是在模拟我们对现实世界的感知的领域对象和我们在屏幕上看到的GUI元素的演示对象之间进行明确划分.域对象应该是完全独立的,并且在不参考演示文稿的情况下工作,它们也应该能够同时支持多个演示.这种方法也是Unix文化的重要组成部分,并且今天继续允许通过图形和命令行界面操作许多应用程序.

根据这篇文章,任何类型组件之间划分的最佳模式类型是结构模式.

来自" 四人帮"的" 设计模式:可重复使用的面向对象软件的元素 ":Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides.(我真的很想推荐你阅读这本很棒的书)

  • 结构模式:
    • 适配器
    • 综合
    • 装饰
    • 正面
    • 飞锤
    • 代理

但在任何类型的框架中,您都可以看到来自几种类型模式的混合:创造模式,结构模式,行为模式.

我在Design Patterns一书的模式之间找到了一个关系图,它可能对日常使用有所帮助.

UPD:添加了很好的答案.