组合模式在开源代码中的应用

2020-08-04

组合模式的作用:将对象组合成树状层次结构,使用户对单个对象和组合对象具有一致的访问性。

 

案例一

JDK 的 AWT(Abstract Window Toolkit),使用了组合模式。AWT 中包含了两种组件:容器组件和基本组件。

  • 容器组件是 java.awt.Container 的子孙类
  • 基本组件是 java.awt.Component 的子孙类
  • 容器组件和基本组件都是 java.awt.Component 的子孙类

Container 类中包含了很多基本组件或容器,放在 ArrayList 中

public class Container extends Component {
    private java.util.List<Component> component = new ArrayList<>();
    
    //向容器类中添加基本组件或容器
    public Component add(Component comp) {
        addImpl(comp, null, -1);
        return comp;
    }
}

基本组件与容器组件,构成了树状结构。由于都是 Component 的子孙类,对 Component 定义的方法,访问上具有一致性

 

ConstXiong 备案号:苏ICP备16009629号-3