(十二)组合模式
2019-08-10 本文已影响0人
feiry
当我们水果店做的非常大的时候,客户的订单来自不同的地方

每个省市行政区,都有很多不同的级别,这样的话在项目中类文件会非常多

这时候需要找出他们的共性提取出来,减少类的种类
组合模式

虽然行政区很多,但是我们可以把他们看成一个节点(Node),把这个节点抽象出来,所有的行政区都是一个节点,该行政区的下属行政机构就是子节点,这其实就是树形结构,这样抽象出来后,类型大大减少,只有一个Node
public abstract class Node {
private String name;
public Node(String name){
this.name = name;
}
public abstract List<Node> getChildren();
public String getName() {
return name;
}
}
public class LeafNode extends Node{
private List<Node> children = new ArrayList<>();
public LeafNode(String name) {
super(name);
}
@Override
public List<Node> getChildren() {
return children;
}
public void addChild(Node node){
children.add(node);
}
public void delChild(int i){
children.remove(i);
}
}
总结
所谓的组合模式,就是减少数据类型,尽可能的抽象出来,减少项目结构上的复杂度