软件设计模式

Cnic.org,开放的网络天书!

设计模式是在面向对象的系统设计过程中反复出现的问题解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义目前还存有争议。算法不是设计模式,因为算法致力于解决实现问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。

随着软件开发社群对设计模式的兴趣日益增长,已经出版了一些相关的专著,定期召开相应的研讨会,而且Ward Cunningham为此发明了WikiWiki用来交流设计模式的经验。

目录

模式的格式

尽管名称和顺序在不同的资料中各有不同,描述模式的格式大致分为以下四个主要部分:

  • 模式名称(Pattern Name):每一个模式都有自己的名字,模式的名字使得我们可以讨论我们的设计。
  • 问题(Problem):在面向对象的系统设计过程中反复出现的特定场合,它导致我们采用某个模式。
  • 解决方案(Solution):上述问题的解决方案,其内容给出了设计的各个组成部分,它们之间的关系、职责划分和协作方式。
  • 效果(Consequence):采用该模式对软件系统其他部分的影响,比如对系统的扩充性、可移植性的影响。影响也包括负面的影响。

相近的术语

对某个问题经常出现的、在设计中应该尽量避免的、坏的设计方案被称为反模式

设计模式列表

基础模式

创建型模式

结构型模式

行为模式

并发模式

实时模式

其他

相关论题

参考资料

站外链接

个人工具
天书
中文维客年会
网络天书
pagerank 5/10