设计模式 chapter1.引言. 这本书的目的就是将面向对象软件的设计经验做为设计模式记录下来.每一个设计模式系统的命名、解释和评价了面向对象系统中的一个重要的和重复出现的设计。我们的目标是将设计经验以人们能够有效利用的形式记录下来。 1.1 什么是设计模式。 每个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次一次的使用该方案而不必做重复劳动。
一般而言,一个模式有四个基本要素: 1.模式名称:一个助记名。它用一两个词描述模式的问题、解决方案和效果。 2.问题:描述了一个在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述特定的设计问题,也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。 3.解决方案:描述了设计的组成部分,他们之间的相互关系及各自的职责和协作方式。解决方案不描述特定而具体的设计和实现,而是提供问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。 4.效果:描述模式的应用效果及使用此模式应该权衡的问题。
设计模式不是针对某个问题,而是针对某中类型的特定解决方案。目的是为了最大限度的达到代码复用。
1.2 Smalltalk MVC中的设计模式 在Smalltalk-80中,类的模型、视图、控制器(Model/View/Control)三元组
(MVC)被用来构建用户界面。 MVC中模型是应用对象,视图view是它在屏幕上的显示,控制器control定义用户界面如何响应用户输入。当模型变化时,模型没必要了解显示变化的细节,最大程度的实现了对象的分离。
1.3 描述设计模式(设计模式描述规范) 我们用统一的格式描述设计模式。 模式名和分类: 模式名简洁的描述了模式的本质,一个好的名字十分重要,因为它将成为你的设计词汇表中的一部分。 意图: 用来回答:设计模式时做什么的?它的基本原理和意图时什么?它解决的是什么样的特定设计问题 别名: 模式的其他名称 动机: 用以说明一个设计问题,如何使用模式中的类、对象来解决该问题的特定情景。该情景会帮助你理解随后对模型更抽象的描述。 适用性: 什么情况使用该模式,此模式可用来改进那些不良设计、怎样识别这些情况。 结构:采用基于对象建模技术的表示法对模式中的类进行图形描述,也使用了交互图来说明对象之间的请求序列和协作关系。 参与者: 指设计模式中的类和(或)对象以及他们各自的职责 协作: 模式的参与者怎样协作实现他们的职责 效果: 模式怎样支持它的目标、使用模式的效果和所需做的权衡取舍、系统结构那些方面可以独立改变 实现: 实现模式时需要知道的一些提示、技术要点及应避免的缺陷,以及是否存在某些特定于实现语言的问题。 代码示例: 用来说明怎样用c++或Smalltalk或其他语言实现该模式的代码片断。 已知应用: 时间系统中发现的模式的例子。每个模式至少包括两个不同领域的实例 相关模式: 相关的其他模式
1.4 设计模式的编目 对即将讲到的23个例子的概括。(略)
1.5 组织编目(编目分类) 分类标准: 第一:目的准则(模式的设计目的) 创建型: 结构型: 行为型: 第二:范围准则(应用于) 类: 对象:
1.6 设计模式怎样解决设计问题: 1 寻找合适的对象 2 决定对象的粒度 3 指定对象接口 4.描述对象的实现 5.运用对象的复用机制 6.关联运行时刻和编译时刻的结构 7.设计应支持变化
1.7 怎样选择设计模式
1.8 怎样使用设计模式
|