组合模式看了几遍,可能是没有机会使用的缘故,一直不能领会其中的奥妙,粗看起来貌似很简单,就是部分与整体的关系,整体是由部分组成的。组合模式将对象组合成树形结构以表示"部分-整体"的层
组合模式看了几遍,可能是没有机会使用的缘故,一直不能领会其中的奥妙,粗看起来貌似很简单,就是部分与整体的关系,整体是由部分组成的。组合模式将对象组合成树形结构以表示"部分-整体"的层次结构,所以又叫做部分-整体模式。这个模式可以让我们像处理简单对象一样处理复杂对象。就是对复杂对象解耦,通过解决一个个简单的问题来解决复杂的问题。
下面看看这样一个情景。我们在做项目的过程中,客户经常要求有所谓的高级查询,其实就是要自由组合查询条件,然后执行查询条件得到结果,条件可能像下面的情况。

通过上图我们可以看出【条件】是由【条件一】和【条件二】组成,而【条件一】则由【名字=‘刘’】和【年龄=‘20’】组合而成,同理可能条件更复杂一些。但是我们可以看出其实归根结底复杂的查询条件都是有简单的查询条件通过and或者or连接词组合而成。也就是【复杂条件(条件)】是【简单条件(名字=‘刘’)】的一个集合,最终的【简单条件(名字=‘刘’)】才是最终条件。这样分析起来它跟组合模式就很吻合。

下图是我参考设计模式图而产生的设计图

代码我就不贴出来了,实现起来也比较简单。
本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。