(十二)组合模式

当我们水果店做的非常大的时候,客户的订单来自不同的地方

(十二)组合模式
文章图片
客户端订单目的地
【(十二)组合模式】每个省市行政区,都有很多不同的级别,这样的话在项目中类文件会非常多

(十二)组合模式
文章图片
image.png
这时候需要找出他们的共性提取出来,减少类的种类 组合模式
(十二)组合模式
文章图片
组合模式
虽然行政区很多,但是我们可以把他们看成一个节点(Node),把这个节点抽象出来,所有的行政区都是一个节点,该行政区的下属行政机构就是子节点,这其实就是树形结构,这样抽象出来后,类型大大减少,只有一个Node

public abstract class Node { private String name; public Node(String name){ this.name = name; }public abstract List getChildren(); public String getName() { return name; } } public class LeafNode extends Node{ private List children = new ArrayList<>(); public LeafNode(String name) { super(name); }@Override public List getChildren() { return children; }public void addChild(Node node){ children.add(node); }public void delChild(int i){ children.remove(i); }}

总结
所谓的组合模式,就是减少数据类型,尽可能的抽象出来,减少项目结构上的复杂度

    推荐阅读