将对象组合成树形结构,以表示“部分-整体”的层次结构,使得用户对“单个对象”和“组合对象”的使用具有一致性。
也就是说,将对象分成枝节点和叶节点,枝节点维护一个子女节点列表。
举个栗子,书本的目录(章节-小结),公司结构(总公司-分公司-具体部门):
1.创建 Company 抽象类或接口,定义Add(Company c),Remove(Company c),Display()。
2.创建 ConcreteCompany (枝节点),HRDepartment(叶节点),继承 Company。
3.调用过程:
ConcreteCompany root = new ConcreteCompany();
root.Add(new HRDepartment());
root.Display();