组合模式又叫部分整体模式(个人觉得叫部分整体模式更直观)。是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。
文字说的啥我也没懂,看示例代码吧,代码比较容易懂:
(1)定义TreeNode
public class TreeNode{ private String name; private TreeNode parent; private Vector<TreeNode> children = new Vector<>(); public void TreeNode(String name){ this.name = name; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public TreeNode getParent(){ return parent; } public void setParent(TreeNode parent){ this.parent = parent; } //添加子节点 public void add(TreeNode node){ children.add(node); } //删除子节点 public void remove(TreeNode node){ children.remove(node); } // 获取子节点 public Enumeration<TreeNode> getChildren(){ return children.elements(); } }
(2)使用
public static void main(String[] args){ TreeNode nodeA = new TreeNode("A"); TreeNode nodeB = new TreeNode("B"); TreeNode nodeC = new TreeNode("C"); nodeA.add(nodeB); nodeA.add(nodeC); logger.info(JSON.toJSONString(nodeA)); }
nodeB和nodeC为nodeA的子节点