2005年3月3日星期四

《ASD》设计模式:Composite

我对于Comosite模式有种特殊的感情,因为这是我第一个理解了的模式。之前看《设计模式》一直未能理解模式的意义,直到看到Comopiste,才觉得豁然开朗。之后再看其它模式,也觉得能够理解模式背后的意图了。

Composite模式其实是一种非常特别的模式,因为他所关注的是结构,而较少关注行为。这与大部分的设计模式是有所不同的。
可是,Composite模式的结构是非常精巧的,甚至可以称之为美丽动人。
元素合在一起组成了结构。结构可以和零散的元素或者别的结构再次组合,形成新的结构。这样的组合可以无穷尽地延续下去。
常常,我们需要的是最上层的整体。
Composite模式让我们可以在运行时期,用组合的方式来建造这样的整体。
Composite模式较少被误用。因为她的应用总是在特别的面向数据结构的上下文环境。而且也没有多少别的方法可以顶替Composite的作用。
Composite模式不太关注行为,即如何使用这个巨大组合结构中的元素。她本身只提供了很简单的深度优先的遍历方法。
如果有更高的行为上的要求,就要借助于另外两个模式:iterator和vistor。

没有评论: