个人随笔
目录
十一、结构型-组合(Composite)模式
2020-09-09 21:38:34

组合模式有时又叫做部分整体模式,在处理类树形结构的问题时比较方便。这个模式还是很好理解的,如下我们举个例子就可以搞定啦。

1、UML


类图很容易明白就是自己关联自己。

2、TreeNode

  1. /**
  2. * 组合模式
  3. * @author suibibk.com
  4. */
  5. public class TreeNode {
  6. private String name;
  7. private List<TreeNode> childrens = new ArrayList<TreeNode>();
  8. public String getName() {
  9. return name;
  10. }
  11. public void setName(String name) {
  12. this.name = name;
  13. }
  14. public void add(TreeNode treeNode) {
  15. childrens.add(treeNode);
  16. }
  17. public void remove(TreeNode treeNode) {
  18. childrens.remove(treeNode);
  19. }
  20. public void display(){
  21. System.out.println("节点名字:"+name);
  22. if(childrens.size()>0) {
  23. for (int i = 0; i < childrens.size(); i++) {
  24. System.out.println("第"+(i+1)+"个孩子节点的名字是:"+childrens.get(i).name);
  25. }
  26. }
  27. }
  28. }

3、测试类Test

  1. public class Test {
  2. public static void main(String[] args) {
  3. TreeNode treeNode = new TreeNode();
  4. treeNode.setName("随笔博客");
  5. TreeNode treeNode2 = new TreeNode();
  6. treeNode2.setName("IT博客");
  7. TreeNode treeNode3 = new TreeNode();
  8. treeNode3.setName("一叶知秋博客");
  9. TreeNode treeNode4 = new TreeNode();
  10. treeNode4.setName("飘呀飘博客");
  11. treeNode.add(treeNode2);
  12. treeNode.add(treeNode3);
  13. treeNode.add(treeNode4);
  14. treeNode.display();
  15. }
  16. }

运行测试类,将会输出如下内容:
节点名字:随笔博客
第1个孩子节点的名字是:IT博客
第2个孩子节点的名字是:一叶知秋博客
第3个孩子节点的名字是:飘呀飘博客

结论

使用场景:部分、整体场景,如树形菜单,文件、文件夹的管理。

 286

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2