树状结构专用模式
package org.example.ms.composite;
public abstract class Node {
abstract void p();
}
package org.example.ms.composite;
public class LeafNode extends Node {
String content;
public LeafNode(String content) {
this.content = content;
}
@Override
void p() {
System.out.println(content);
}
}
package org.example.ms.composite;
import java.util.ArrayList;
import java.util.List;
public class BranchNode extends Node{
List nodes = new ArrayList<>();
String name;
public BranchNode(String name){
this.name = name;
}
@Override
void p() {
System.out.println(name);
}
public void add(Node node){
nodes.add(node);
}
}
package org.example.ms.composite;
public class Test {
public static void main(String[] args) {
BranchNode root = new BranchNode("root");
BranchNode branchNode1 = new BranchNode("11111111");
BranchNode branchNode2 = new BranchNode("22222222");
Node n1=new LeafNode("n1");
Node n2=new LeafNode("n2");
root.add(branchNode1);
root.add(branchNode2);
branchNode1.add(n1);
branchNode1.add(n2);
BranchNode branchNode22 = new BranchNode("22222222-2");
Node n21=new LeafNode("n21");
Node n22=new LeafNode("n22");
branchNode22.add(n21);
branchNode22.add(n22);
root.add(branchNode22);
tree(root,0);
}
static void tree(Node node,int depth){
for(int i = 0 ; i



