S05 组合模式 Mybatis源码分析

类图

Mybatis中对组合模式的使用.png

代码

树结构中节点的抽象
public interface SqlNode {
  boolean apply(DynamicContext context);
}
树结构中非叶子节点的抽象
  • 识别组合模式的一个要点:实现了一个接口,又聚合了这个接口的集合,那么该类很有可能是组合模式中的组合对象;
public class MixedSqlNode implements SqlNode {
  private List contents;

  public MixedSqlNode(List contents) {
    this.contents = contents;
  }

  @Override
  public boolean apply(DynamicContext context) {
    for (SqlNode sqlNode : contents) {
      sqlNode.apply(context);
    }
    return true;
  }
}

你可能感兴趣的:(S05 组合模式 Mybatis源码分析)