组合模式是一种结构型设计模式,它提供了一种方式,可以将对象组合成树形结构以表示"部分-整体"的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。
在Java中,组合模式可以通过接口和类的方式来实现,下面是一个简单的示例:
我们定义一个接口Component
,所有的组件都需要实现这个接口:
public interface Component { void operation(); }
我们定义一个具体的组件类ConcreteComponent
,它实现了Component
接口:
public class ConcreteComponent implements Component { @Override public void operation() { System.out.println("具体组件的操作"); } }
我们定义一个容器类Composite
,它也实现了Component
接口,并且持有一个Component
类型的列表:
import java.util.ArrayList; import java.util.List; public class Composite implements Component { private List<Component> components = new ArrayList<>(); public void add(Component component) { components.add(component); } public void remove(Component component) { components.remove(component); } public Component getChild(int index) { return components.get(index); } @Override public void operation() { for (Component component : components) { component.operation(); } } }
在这个例子中,Composite
类就是一个组合模式的容器,它可以包含多个Component
对象,并且可以统一地对这些对象进行操作,当我们需要添加、删除或获取某个组件时,只需要调用Composite
类的方法即可。