桥接模式 组合模式 java,组合模式 - JAVA 技术交流 - OSCHINA - 中文开源技术交流社区...

组合模式:核心思想是解决树形结构,将一个复杂的对象简单化。典型的应用就是树形结构的应用。

例:目录结构、组织架构这类问题都可以使用组合模式解决。

具体代码如下:

package com.mkf.pattern;

import java.util.Enumeration;

import java.util.Vector;

public class TreeNode {

private String name;

private TreeNode parent;

private Vector children = new Vector();

public 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;

}

/**

* 添加子节点

*

* @param node

*/

public void addChildren(TreeNode node) {

children.add(node);

node.setParent(this);

}

/**

* 删除子节点

*

* @param node

*/

public void removeChildren(TreeNode node) {

children.remove(node);

}

/**

* 获得子节点

*

* @return

*/

public Enumeration getChildren() {

return children.elements();

}

@Override

public String toString() {

return "TreeNode [parent=" + (null == parent ? "" : parent.getName()) +

", name=" + name

+ ", children" + children.toString() + "]";

}

}

测试

package com.mkf;

import com.mkf.pattern.TreeNode;

public class TestComposite {

/**

* @param args

*/

public static void main(String[] args) {

TreeNode root = new TreeNode("ROOT");

TreeNode node11 = new TreeNode("NODE11");

TreeNode node12 = new TreeNode("NODE12");

TreeNode node1121 = new TreeNode("NODE1121");

TreeNode node1122 = new TreeNode("NODE1122");

TreeNode node1221 = new TreeNode("NODE1221");

TreeNode node1222 = new TreeNode("NODE1222");

root.addChildren(node11);

root.addChildren(node12);

node11.addChildren(node1121);

node11.addChildren(node1122);

node12.addChildren(node1221);

node12.addChildren(node1222);

System.out.println(root.toString());

}

}

输出结果:

TreeNode [parent=, name=ROOT, children[

TreeNode [parent=ROOT, name=NODE11, children[

TreeNode [parent=NODE11, name=NODE1121, children[]],

TreeNode [parent=NODE11, name=NODE1122, children[]]

]

],

TreeNode [parent=, name=NODE12, children[

TreeNode [parent=NODE12, name=NODE1221, children[]],

TreeNode [parent=NODE12, name=NODE1222, children[]]

]

]

]

]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值