- 浏览: 20054 次
- 性别:
- 来自: 上海
最新评论
组合模式
- 博客分类:
- 设计模式
组合模式:核心思想是解决树形结构,将一个复杂的对象简单化。典型的应用就是树形结构的应用。
例:目录结构、组织架构这类问题都可以使用组合模式解决。
具体代码如下:
package com.mkf.pattern; import java.util.Enumeration; import java.util.Vector; public class TreeNode { private String name; private TreeNode parent; private Vector<TreeNode> children = new Vector<TreeNode>(); 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<TreeNode> 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[]]
]
]
]
]
发表评论
-
责任链模式
2012-04-30 18:07 871责任链模式:即处理一个逻辑时,请求到一个对象A,对象A处理完毕 ... -
迭代模式
2012-04-08 19:22 788迭代模式: 此模式的思想是有一个数据集合 ... -
观察者模式
2012-04-08 15:23 753观察者模式:有观察者(Observer)和被观察者(Subje ... -
模板方法模式
2012-03-30 20:48 753模板方法模式:该模式主要思想是,通过抽象类(AbstractC ... -
策略模式
2012-03-30 20:27 686策略模式:主要思想就是,为某一件事情,根据不同的原因,产生不同 ... -
动态代理
2012-03-30 20:28 725动态代理:即JAVA在运行时,动态的创建代理类。 使用动态代 ... -
桥接模式
2012-03-26 22:34 815桥接模式:如果你了解JDBC的DriverManager设计思 ... -
外观模式
2012-03-26 22:31 745外观模式:其实就是对调用复杂的业务进行再一次封装,给客户一个简 ... -
代理模式
2012-03-26 22:25 700代理模式:即通过代理对象来执行被代理的对象。 代理对象拥有被 ... -
装饰器模式
2012-03-26 22:16 738装饰器模式:即客户端先调用的接口A,现在客户端需要在调用接口A ... -
适配器模式
2012-03-25 16:49 654适配器模式:客户端调用某一个类型 Adapter,该类型只有o ... -
原型模式
2012-03-25 15:58 721原型模式:有一个对象A,在不使用创建的情况下,得到一个与A一样 ... -
建造者模式
2012-03-25 14:56 672建造者模式:一般用来创建复杂对象,如:一个类型的对象 A 的属 ... -
单例模式
2012-03-25 14:05 328单例模式:即在全局范围内,某个类只允许存在一个实例。 ... -
工厂模式
2012-03-25 12:58 371工厂模式:即通过一个类进行创建同一类型的不同对象。 例 ...
相关推荐
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的...
组合模式(Composite),将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式的适用场合是,一般当你发现需求中是体现部分与整体层次的结构时,...
本资源包含由Java设计模式中的“组合模式”实现的“五子棋”所有源代码,需要的朋友可以下载哦!
使用组合模式有如下的好处: l 定义了饱含基本对象和组合对象的类层次结构,基本对象可以被组合成更复杂的组合对象,而这个组合对象有可以被组合。 简化客户代码 客户可以一直地使用组合结构和单个对象,通常用户不...
java设计模式【之】组合模式【源码】【场景:遍历目录树】 * 组合模式 * 将对象组合成树结构,表示 “部分与整体” 的关系 * 要求 部分与整体,具备相同的父类 * * 代码实现 * 输出当前目录下,全部目录层级...
本资源包含一个由Java设计模式中的“组合模式”实现的“空军指挥系统”的全部源代码。注意:本资源含有的代码量比较大,对于急需“项目实战”的朋友很有帮助!需要的朋友可以下载哦!!!!!!!!!!
c++设计模式-结构型模式-组合模式;qt工程;c++简单源码; 组合(Composite Pattern)模式的定义:有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系...
设计模式C++学习之组合模式(Composite)
java组合模式例子
设计模式--组合模式java例子
组合模式的例子代码,你值得拥有,好好学习,天天向上咯。
实验八:组合模式.rar实验八:组合模式.rar
组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 "组合对象" 的含义。...
本例主要包含组合模式的C#实现,以及一个应用案例,加深该模式理解与运用。
最简单的组合模式实现,最能体现模式本身的特性,最少对需求理解的依赖
ios平台中通过最简单的代码讲解组合模式,可在博客http://blog.sina.com.cn/s/blog_161d504630102wxis.html中查看简单解释
C#设计模式——组合模式应用实例。主要对一款针不同杀毒软件框架的学习。
设计模式-组合模式(讲解及其实现代码)
Java 23种设计模式12组合模式.pdf
Android组合模式简单Demo,同步博文:http://blog.csdn.net/qq_28690547/article/details/50744047