(10)组合模式
概念
组合模式依据树形结构来组合对象,用来表示部分以及整体层次。组合模式说白了就是一个树形结构。如某商城的商品分类,如省市区等结构,这些都是树形结构,都属于组合模式。
实现方式
import java.util.ArrayList;
import java.util.List;
/**
* 组合
*/
public class Demo {
public static void main(String[] args) {
Node root = new Node("中国");
Node gd_1 = new Node("广东");
Node hn_1 = new Node("海南");
List<Node> level1 = new ArrayList<>();
level1.add(gd_1);
level1.add(hn_1);
Node hk_2 = new Node("海口");
Node sy_2 = new Node("三亚");
List<Node> level2 = new ArrayList<>();
level2.add(hk_2);
level2.add(sy_2);
root.list = level1;
hn_1.list = level2;
println(root, 0);
}
public static void println(Node node, int num) {
for (int i = 0; i < num; i++) {
System.out.print("--");
}
System.out.println(node.name);
if (node.list != null) {
for (Node n : node.list) {
println(n, num + 1);
}
}
}
}
class Node {
String name;
List<Node> list;
public Node(String name) {
this.name = name;
}
}
中国
--广东
--海南
----海口
----三亚