首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计方式之-组合模式

2013-04-09 
设计模式之---组合模式组合模式,是众多的结构性模式中的一种,想比较之前的桥接模式以及适配器模式,在理解

设计模式之---组合模式

组合模式,是众多的结构性模式中的一种,想比较之前的桥接模式以及适配器模式,在理解上会有稍稍的难度。

       从组合模式的介绍上来看的话,其实还是不甚了解,以前学过的数据结构中的树的概念到还能够想起来一些。

       从网上看到的一些关于这个模式的解释,也都是一些没有说到重要地方的解释,看起来一大堆的东西,基本上没有讲清楚。既然如此麻烦,索性直接自己来通过代码来理解还好点。

       所谓的树型结构和树枝等等概念看起来也比较麻烦。但是从代码上还是了解到了一些东西。所以就根据自己的所了解的程度进行类图的绘制。

设计方式之-组合模式

       从上面可以知道,作为树枝节点的部分虽然也是继承根节点的,但是在使用上是属于组合方式提供给树枝节点使用。

       相当于提供这样一种情况,就是当一些对象进行组合使用和单独的继承都是我需要的情况下,才会采用这种模式。例如,在现在的娱乐公司里面,往往会推出一些单独的歌手,自然也会推出一些组合的歌手。而这样的模式自然就是属于组合模式了。虽然每个歌手不管是单独的艺人还是组合中的任何一个,都是属于歌手中的一个子类。但是,当公司进行调用的时候,往往这两种情况是不同的,因为就需要推出一些组合和一些单独演唱的歌手了。

       从上面的例子,再举一个实际的代码示例吧。

这里需要值得注意一个问题,在树枝节点的上往往会有叶子节点,而叶子节点的调用方式正是以组合方式调用的。由于调用的方式正是以多个叶子节点一并调用的方式进行的,所以在调用叶子节点的时候,往往要做一些特殊处理的。

而且,这个调用方式在其他的模式中也是暂时没有看到的,是这个模式的一种特殊的地方,整个组合模式而言,最需要特别注意的地方就是这里了。

在上述的类图中,树枝节点对于根节点的调用就是一种组合方式,在实际操作中,就是通过成员变量的方式进行批量的操作。

热点排行