UML软件工程组织

敏捷思维- 架构设计中的方法学(3)
作者:Michael Duell 著,Wu 译 本文选自:UlMChina 2002年08月22日

组合(Composite)例子

组合模式将对象组合成树形结构以表示"部分-整体"的层次结构。让用户一致地使用单个对象和组合对象。虽然例子抽象一些,但是算术表达式确实是组合的例子。算术表达式包括操作数、操作符和另一个操作数。操作数可以是数字,也可以是另一个表达式。这样,2+3和(2+3)+(4*6)都是合法的表达式。

图8:使用算术表达式例子的组合模式对象图

装饰(Decorator)举例

装饰模式动态地给一个对象添加额外的职责。不论一幅画有没有画框都可以挂在墙上,但是通常都是有画框的,并且实际上是画框被挂在墙上。在挂在墙上之前,画可以被蒙上玻璃,装到框子里;这时画、玻璃和画框形成了一个物体。

图9:使用有画框的画作为例子的装饰模式对象图

外观(Facade)举例

外观模式为子系统中的接口定义了一个统一的更高层次的界面,以便于使用。当消费者按照目录采购时,则体现了一个外观模式。消费者拨打一个号码与客服代表联系,客服代表则扮演了这个"外观",他包含了与订货部、收银部和送货部的接口。

图10:使用电话订货例子的外观模式对象图

享元(Flyweight)举例

享元模式使用共享技术有效地支持大量细粒度的对象。公共交换电话网(PSTN)是享元的一个例子。有一些资源例如拨号音发生器、振铃发生器和拨号接收器是必须由所有用户共享的。当一个用户拿起听筒打电话时,他不需要知道使用了多少资源。对于用户而言所有的事情就是有拨号音,拨打号码,拨通电话。

图11:使用拨号音发生器例子的享元模式对象图

代理(Proxy)模式

代理模式提供一个中介以控制对这个对象的访问。一张支票或银行存单是账户中资金的代理。支票在市场交易中用来代替现金,并提供对签发人账号上资金的控制。

图12:使用银行存单例子的代理模式对象图

我们将继续介绍软件设计模式中的十一种行为模式及非软件实例。

『引自 UMLCHINA』

上一页  



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