组合模式-Composite(Java实现)
组合模式-Composite Composite模式使得用户对单个对象和组合对象的使用具有一致性. 以<<图解设计模式>>的文件例子来说: 文件夹是文件的组合, 文件 是单个对象, 文件夹 是多个文件的组合. 不过对用户来说, 无论是文件还是文件夹, 他希望使用一个统一的方法来管理他们.这就需要将他们再次抽象出来. 解读一下这个类图就明白了: 1. 文件是一个组件 2. 文件夹也是一个组件 3. 文件夹里有很多组件: Component抽象类 这是文件 文件夹的抽象定义类--组件类 /** * 这里是文件/文件夹 的统一抽象类 "组件类" */ public abstract class Component { /** * parent是父组件的指针, 也就是本例子中的"父级目录" */ protected Component parent; /** * 获取组件名字 */ public abstract String getName(); /** * 获取组件的大小 */ public abstract int getSize(); /** * @implNote 向一个组件中添加一个组件. * @implSpec 组合模式中的叶子(Leaf)节点不可以使用这个方法, 用例子说明的话: * 一个文件不可以添加一个文件或文件夹, 只能是文件夹来添加文件或文件夹 */ public