摘录1
Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”;尽管Alexander所指的是城市和建筑模式,但他的意思也同样适用于面向对象设计模式。摘录2
一般而言,一个模式有四个基本要素:
- 模式名称 (pattern name) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。
- 问题 (problem) 描述了应该在何时使用模式。
- 解决方案 (solution) 描述了设计的组成部分,它们之间的相互关系及各自的职责和协作方式。
- 效果 (consequences) 描述了模式应用的效果及使用模式应权衡的问题。
摘录3
...本书中的设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。
总结:
这章介绍了什么是设计模式,以及该书里的设计模式是什么样子,都有精确的描述。该章节后半段说到了语言,本书使用Smalltalk 和 C++作为示例语言,因为这些语言越来越流行(?)以及都是面向对象的语言,而不是过程式语言。从实用角度出发,选了它们。如果使用过程式,就可能要包括“继承”,“封装”和“多态”的设计模式,而一些面向对象语言就可以直接支持某些模式。