UML软件工程组织

探索软件设计模式(二)(1)
作者:Michael Duell 著,Wu 译 本文选自:UlMChina 2002年08月22日

我们在前面的文章中已经介绍了一些软件的设计模式,并给出了一些非软件的例子。下面,让我们继续完成软件设计模式的探索,来看看这些模式中的行为模式及实例。

行为模式

作者总结了十一种行为模式。这些模式可以在硬币分类银行、餐馆订餐、音乐、运输、汽车修理、自动售货机和家庭建筑中找到例子。

职责链(Chain of Responsibility)举例

职责链模式使得多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。机械硬币分拣银行使用职责链。这里并不是为每一种硬币分配一个滑槽,而是仅使用一个滑槽。当硬币落下时,硬币被银行内部的机械导向至适当的接收盒。

图13:使用硬币分拣例子的职责链模式对象图

命令(Command)模式

命令模式将一个请求封装为一个对象,从而使你可以使用不同的请求对客户进行参数化。用餐时的账单是命令模式的一个例子。服务员接受顾客的点单,把它记在账单上封装。这个点单被排队等待烹饪。注意这里的"账单"是不依赖于菜单的,它可以被不同的顾客使用,因此它可以添入不同的点单项目。

解释器(Interpreter)举例

解释器模式定义了特定语言的文法表示和解释该文法的解释器。音乐家是解释器的例子。音阶和它的持续时间可以用五线谱上的符号表示。这些符号就是音乐语言[14]。音乐家按照乐谱演奏,就可以反复重现同样的音乐。

  下一页



版权所有:UML软件工程组织