设计模式专栏
作者: 刘鹏整理
日期: 2009-09-21
总结和整理 GUI 系统及 GUI 程序中的设计模式。

GUI 系统需求描述

GUI 系统的需求描述文档,列举了一个 GUI 系统应该具有的功能和在设计时应 该考虑的问题。

分离用户界面与内部实现

本文是李先静的“系统程序员成长计划”中的一篇,详细介绍了在 GUI 应用中如 何分离用户界面与内部实现。

GUI 设计与设计模式系列:GUI 主循环设计及其在 MiniGUI, GTK, QT 的实现

介绍了 GUI 主循环的设计思路,并分析了 MiniGUI, GTK, QT 的主循环。

设计模式速查手册

本文简单明了地总结了 23 种设计模式,介绍了每种模式的意图、适用环境,并 给出了类图和 C++ 代码,是个不错的速查手册。

游戏引擎评价

本文对目前常用的游戏引擎做了评价,包括图形引擎、物理引擎,开源的、商业 的,并介绍了一个 GUI 系统 CEGUI。还是那个目的,从游戏引擎寻找灵感应用 到 GUI 系统中。

从游戏引擎看 GUI 设计

游戏引擎中有很多技术可被 GUI 系统可用,本文试图对这些技术进行归纳和介 绍。

软件架构设计基本原则

本文试图整理和总结软件系统中架构设计的基本原则。

GUI 设计与设计模式系列:利用设计模式设计足球游戏引擎 PART A PART B

本文以一个足球游戏引擎的设计为例,介绍了 Observer、Strategy、Decorator 三种设计模式,虽然这是个游戏引擎的案例,但对 GUI 应用的开发有很大的借 鉴意义。

GUI 设计与设计模式系列:分离数据与显示

本文介绍了 GUI 程序设计中一些将数据与显示分离的思路和设计模式。

GUI 设计与设计模式系列: 有限自动机 (FSM) 与事件处理

GUI 需要处理的事件越来越复杂。用传统的 switch 机制来处理已经无法满足需 要,需要考虑新的处理方法,有限自动机是一个不错的选择。

GUI 设计与设计模式系列: Cache Buffer

在 GUI 系统中对资源进行高效管理是非常重要的问题。文本以图片管理为例, 提出一个基于哈希表的 cache buffer。

GUI 设计与设计模式系列: 回调函数

GUI 系统中,回调函数扮演着非常重要的角色。本文结合一些具体的 GUI 系统,介绍了回调函数的设计和使用。

GUI 设计与设计模式系列:layout

Layout 是看不见的容器组件,它可以包含 widget,并且能够根据窗口大小自动 调整 widget 的位置和尺寸。本文总结了一些主流 GUI 系统 Layout 的设计思 路和特色。

GUI 设计与设计模式系列:消息队列的设计和实现

消息驱动机制是 GUI 系统的基础,消息驱动的底层基础设施之一是消息队列, 它是整个 GUI 系统运转的中枢,本文介绍了一个基于环形队列的消息队列实现方 法,给出了它的数据结构、主要操作流程和核心代码。

字符串哈希函数研究

哈希表是使用频率非常高的数据结构,其中哈希函数是哈希表的关键,本文介绍了哈希函数的基本概念、常见设计方法,并给出了一个优化实例。

深入分析 select 函数的使用

select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - synchronous I/O multiplexing.

进程间通信之共享内存

本文介绍了两种共享内存方式,一种是用 mmap 实现共享内存,另一种是用 System V 进程通信机制。

进程间通信之 Unix Domain Socket

本文介绍了 Unix Domain Socket 这种进程间通信方式,详细描述了具体流程、函数接口,并给出了示例代码。

Human interface guidelines

Human interface guidelines (HIG) 是为应用程序开发者提供的一套规则,保证开发者开发的应用程序在界面上具有良好的一致性和操作性,为用户带来良好的用户体验。

图形用户界面的历史

本文介绍了图形用户界面系统(GUI)的发展历史。

谈谈用户界面设计

在人和机器的互动过程 (Human Machine Interaction) 中,有一个层面,即我 们所说的界面 (interface)。从心理学意义来分,界面可分为感觉 (视觉、触觉、 听觉等) 和情感两个层次。用户界面设计是屏幕产品的重要组成部分。界面设计 是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮 演着重要的角色。用户界面设计的三大原则是:置界面于用户的控制之下;减少 用户的记忆负担;保持界面的一致性。

GUI 系统需求描述

GUI 系统的需求描述文档,列举了一个 GUI 系统应该具有的功能和在设计时应 该考虑的问题。

GUI 项目参考

本文收集了目前所有的 GUI 项目链接,包括开源的、不开源的,面向 PC 的、 面向嵌入式设备的,试图对目前的 GUI 现状做一个索引。