软件设计 组合模式 Composite Pattern
作者:@kuaiquxie
作者的github:https://github.com/bitebita
本文为作者原创,如需转载,请注明出处:https://www.cnblogs.com/dzwj/p/16991353.html
组合模式实际上就是将多个组件进行组合,让用户可以对它们进行一致性处理。
代码实现:
1、定义组件
/**
* 组件
*/
public abstract class Component {
/**
* 添加子组件
* @param component 组件
*/
public abstract void add(Component component);
/**
* 删除子组件
* @param component 组件
*/
public abstract void remove(Component component);
/**
* 获取子组件
* @param index 组件序号
* @return 子组件
*/
public abstract Component getChild(int index);
/**
* 修改名称
*/
public abstract void editName();
}
2、定义文件夹
/**
* 目录
* <p>目录可以包含多个文件或目录
*/
public class Directory extends Component{
/**
* 使用 List 来存放目录中的子组件(存放文件夹中的文件夹 或者 文件)
*/
List<Component> child = new ArrayList<>();