组合模式的基础
定义:组合模式(Composite)将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。
作用:组合模式让你可以优化处理递归或分级数据结构。
使用场景:系统目录结构、网站导航结构、文件扫描、DOM的机制,一个DOM节点可以包含子节点,不管是父节点还是子节点都有添加、删除、遍历子节点的通用功能。
该模式由两部分构成:
1.子对象(Leaf):组成组合对象的最基本对象。
2.组合对象(Composite):由子对象组合起来的复杂对象。
组合模式的例子
文件扫描
PS:父类和子类必须具有相同的接口(方法),只不过它们相同的方法具有的功能不相同,例如父类的实例具有 add 方法作用是,可以添加文件夹 或者 文件。子类的实例具有 add 方法则不能添加文件夹 或者 文件,却抛出一个错误(子类重写父类的方法)。