• Composite
  • 树状结构
    • abstract class Node{}
      class LeafNode extends Node{}
      class BranchNode extends Node{
          List<Node> nodes = new ArrayList<>();
      }
       
      tree(Node b, int depth) {
          b.print();
          if (b instanceof BranchNode) {
              for (Node n : ((BranchNode)b).nodes){
                  tree(n, depth+1)
              }
          }
      }