1、简述
组合模式(Composite Pattern)是一种结构型设计模式,旨在将对象组合成树形结构以表示“部分-整体”的层次结构。它使客户端对单个对象和组合对象的使用具有一致性。
设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git
2、什么是组合模式
组合模式的核心思想是将对象组织成树形结构,并通过一个统一的接口处理不同类型的节点(例如叶子节点和容器节点)。这种模式适用于需要以层次化方式组织数据的场景,例如文件系统、组织结构图等。
组合模式的优点:
- 层次结构清晰:通过树形结构组织对象,使整体结构更加清晰。
- 客户端统一操作:客户端无需关心对象是单个对象还是组合对象,操作方式一致。
- 扩展性强:可以方便地新增节点类型,而无需修改现有代码。
- 符合开闭原则:新增功能时,不影响已有功能。
3、实际案例
假设我们需要实现一个公司组织架构管理系统,其中有两类对象:普通员工(叶子节点)和部门(容器节点)。通过组合模式,我们可以统一处理单个员工和整个部门。
// 抽象组件
public interface Employee {
void showDetails();
}
// 叶子节点:普通员工
public class Developer implements Employee {
private String name;
private String position;
public Developer(String name, String position) {
this.name = name;
this.position = position;
}
@Override
public void showDetails() {
System.out.println(name + " - " + position);
}
}
public class Manager implements Employee {
private String name;
private String position;
public Manager(String name, String position) {
this.name = name;
this.position = position;
}
@Override
public void showDetails(