zoukankan      html  css  js  c++  java
  • 设计模式之 组合模式

    组合模式又叫部分整体模式(个人觉得叫部分整体模式更直观)。是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。

    文字说的啥我也没懂,看示例代码吧,代码比较容易懂:

    image

    (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的子节点


  • 相关阅读:
    [leetcode]Palindrome Partitioning II
    [wikioi]传纸条
    [leetcode]Palindrome Partitioning
    [leetcode]Convert Sorted List to Binary Search Tree
    [topcoder]ActivateGame
    [topcoder]NinePuzzle
    [topcoder]BestRoads
    [topcoder]IncreasingSubsequences
    [leetcode]Surrounded Regions
    CF 432B :Football Kit
  • 原文地址:https://www.cnblogs.com/betterwgo/p/15224308.html
Copyright © 2011-2022 走看看