组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。
将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
这句话啥意思呢?说白了,就是你调用组合的对象,和单个的对象其方法是一模一样的,你不用关心其内做了什么。
比如我们的文件夹表示,他就是多级树形结构,那么存储这种东西,就适合用我们的组合模式。 比如你删除一个文件,与删除一个文件夹,所用的操作是一样的把?这就叫"使得用户对单个对象和组合对象的使用具有一致性。"比如我们查看文件的描述,那也是一样的。所以我们就来模拟一下。
单个文件与文件夹的抽象类
文件夹实现类
文件的实现类
client代码
运行的结果
这个模式总体来说不难理解。也知道什么适合运用。