软件设计模式
Cnic.org,开放的网络天书!
设计模式是在面向对象的系统设计过程中反复出现的问题解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义目前还存有争议。算法不是设计模式,因为算法致力于解决实现问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。
随着软件开发社群对设计模式的兴趣日益增长,已经出版了一些相关的专著,定期召开相应的研讨会,而且Ward Cunningham为此发明了WikiWiki用来交流设计模式的经验。
目录 |
[编辑]
模式的格式
尽管名称和顺序在不同的资料中各有不同,描述模式的格式大致分为以下四个主要部分:
- 模式名称(Pattern Name):每一个模式都有自己的名字,模式的名字使得我们可以讨论我们的设计。
- 问题(Problem):在面向对象的系统设计过程中反复出现的特定场合,它导致我们采用某个模式。
- 解决方案(Solution):上述问题的解决方案,其内容给出了设计的各个组成部分,它们之间的关系、职责划分和协作方式。
- 效果(Consequence):采用该模式对软件系统其他部分的影响,比如对系统的扩充性、可移植性的影响。影响也包括负面的影响。
[编辑]
相近的术语
对某个问题经常出现的、在设计中应该尽量避免的、坏的设计方案被称为反模式。
[编辑]
设计模式列表
[编辑]
基础模式
[编辑]
创建型模式
[编辑]
结构型模式
[编辑]
行为模式
[编辑]
并发模式
- 模式 Action at a distance
- 模式 Balking
- 模式 Guarded suspension
- 模式 Scheduler
- 模式 Read write lock
- 模式 Double checked locking
- 模式 Disable job requests while running job
[编辑]
实时模式
[编辑]
其他
[编辑]
相关论题
[编辑]
参考资料
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides: Design Patterns, Addison-Wesley, 1995, hardcover, 395 pages, ISBN 0201633612, Design Patterns CD, 1997 ISBN 0201634988
- Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal: Pattern-oriented Software Architecture, Volume 1: A System of Patterns, John Wiley & Sons Ltd., ISBN 0471958697
- Douglas Schmidt: Pattern-oriented Software Architecture. Volume 2: Patterns for Concurrent and Networked Objects, John Wiley & Sons Ltd., ISBN 0471606952
- Alan Shalloway, James R. Trott: Design Patterns Explained: A New Perspective on Object-Oriented Design, Addison-Wesley, ISBN 0201715945
- Martin Fowler: Patterns of Enterprise Application Architecture, Addison-Wesley, ISBN 0321127420
[编辑]



