设计模式之组合模式

来源:互联网 发布:深圳蓝凌软件 编辑:程序博客网 时间:2024/06/02 01:21

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

这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。

优点:1、高层模块调用简单。2、节点自由增加。

缺点:在使用组合模式时,其叶子和树枝的声明都是实现类,而不是接口,违反了依赖倒置原则。

public class TreeNode {    private String leafName;    private List<TreeNode> treeNodeList;    public String getLeafName() {        return leafName;    }    public void setLeafName(String leafName) {        this.leafName = leafName;    }    public List<TreeNode> getTreeNodeList() {        return treeNodeList;    }    public void setTreeNodeList(List<TreeNode> treeNodeList) {        this.treeNodeList = treeNodeList;    }    public TreeNode(String leafName) {        this.leafName = leafName;        this.treeNodeList = new ArrayList<TreeNode>();    }    public void add(TreeNode treeNode){        treeNodeList.add(treeNode);    }    public void remove(TreeNode treeNode){        treeNodeList.remove(treeNode);    }    public void traverse(){        System.out.println();    }}
实现测试类

public class Tree {    TreeNode treeNode = null;    public static void main(String[] args){        Tree tree = new Tree("parent");        TreeNode A = new TreeNode("A");        TreeNode B = new TreeNode("B");        A.add(B);        tree.treeNode.add(A);    }    public Tree(String treeName){        treeNode = new TreeNode(treeName);    }}
参考内容

https://sourcemaking.com/design_patterns/composite/java/2

0 0
原创粉丝点击