- 浏览: 20893 次
- 性别:
- 来自: 上海
最新评论
组合模式:核心思想是解决树形结构,将一个复杂的对象简单化。典型的应用就是树形结构的应用。
例:目录结构、组织架构这类问题都可以使用组合模式解决。
具体代码如下:
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 917责任链模式:即处理一个逻辑时,请求到一个对象A,对象A处理完毕 ... -
迭代模式
2012-04-08 19:22 843迭代模式: 此模式的思想是有一个数据集合 ... -
观察者模式
2012-04-08 15:23 796观察者模式:有观察者(Observer)和被观察者(Subje ... -
模板方法模式
2012-03-30 20:48 805模板方法模式:该模式主要思想是,通过抽象类(AbstractC ... -
策略模式
2012-03-30 20:27 724策略模式:主要思想就是,为某一件事情,根据不同的原因,产生不同 ... -
动态代理
2012-03-30 20:28 775动态代理:即JAVA在运行时,动态的创建代理类。 使用动态代 ... -
桥接模式
2012-03-26 22:34 874桥接模式:如果你了解JDBC的DriverManager设计思 ... -
外观模式
2012-03-26 22:31 774外观模式:其实就是对调用复杂的业务进行再一次封装,给客户一个简 ... -
代理模式
2012-03-26 22:25 727代理模式:即通过代理对象来执行被代理的对象。 代理对象拥有被 ... -
装饰器模式
2012-03-26 22:16 775装饰器模式:即客户端先调用的接口A,现在客户端需要在调用接口A ... -
适配器模式
2012-03-25 16:49 686适配器模式:客户端调用某一个类型 Adapter,该类型只有o ... -
原型模式
2012-03-25 15:58 750原型模式:有一个对象A,在不使用创建的情况下,得到一个与A一样 ... -
建造者模式
2012-03-25 14:56 702建造者模式:一般用来创建复杂对象,如:一个类型的对象 A 的属 ... -
单例模式
2012-03-25 14:05 356单例模式:即在全局范围内,某个类只允许存在一个实例。 ... -
工厂模式
2012-03-25 12:58 404工厂模式:即通过一个类进行创建同一类型的不同对象。 例 ...
相关推荐
组合模式是一种对象结构型设计模式,它允许我们创建表示部分-整体层次结构的树形对象。在空军指挥系统中,这种模式的应用可以帮助我们构建一个灵活、可扩展的组织架构,其中每个部分(如飞机、飞行编队或基地)都...
java常用设计模式-组合模式 组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构以表示“部分-整体”的层次结构。这种模式使得客户端可以统一对待单个对象和对象组合。在组合模式中...
组合模式是一种对象结构型设计模式,它允许我们以树形结构来表示部分-整体关系,使得我们可以像处理单个对象一样处理整个集合。在五子棋游戏的实现中,组合模式的应用尤为关键,因为它帮助我们将棋盘上的棋子和棋盘...
### 设计模式实验报告——组合模式 #### 实验目的与背景 本次实验旨在通过实践学习设计模式中的组合模式,理解其工作原理及应用场景。组合模式(Composite Pattern)是一种结构型设计模式,它允许用户将对象组合成...
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的...
组合模式是一种软件设计模式,属于结构型模式,它允许我们以树形结构来表示部分与整体的关系,使得我们可以像处理单个对象一样处理整个集合。在iOS开发中,这种模式非常有用,特别是在处理数据结构或者UI组件时,...
组合模式是一种设计模式,它属于结构型模式,主要目的是为了将对象组织成树形结构,使得用户可以统一地处理单个对象和对象集合。在Java中,组合模式可以帮助我们实现部分与整体的层次结构,使得客户端代码可以一致地...
组合模式是一种行为设计模式,属于面向对象设计中的结构型模式,其主要目的是为了建立一种对象树形结构,这种结构能够使客户端代码以统一的方式处理单个对象和对象的组合。在组合模式中,我们通常会定义一个基类,...
组合模式是一种设计模式,它将对象组织成树形结构,使得用户可以统一处理单个对象和对象集合。在本实验中,我们将深入探讨组合模式的原理、实现方式以及其在实际编程中的应用。 首先,我们要理解组合模式的核心概念...
在这个主题中,我们主要探讨了如何利用组合模式(Composite Pattern)构建二叉树,并通过迭代器模式(Iterator Pattern)来实现对树的遍历,包括前序、中序和后序遍历。这些是设计模式中的经典应用,对于理解和掌握...
组合模式(Composite),将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式的适用场合是,一般当你发现需求中是体现部分与整体层次的结构时,...
组合模式是一种结构型设计模式,它允许我们使用树形结构来表示部分-整体关系,使得我们能够像处理单个对象一样处理整个集合。在Java中,这种模式的应用可以帮助我们简化对复杂对象层次结构的操作,同时保持接口的...
组合模式是一种结构型设计模式,它允许我们使用树形结构来表示部分-整体关系,使得我们能够以统一的方式处理单个对象和对象集合。在C++中,组合模式的应用可以帮助我们构建灵活且易于操作的对象层次结构,使得客户端...
组合模式是一种结构型设计模式,它允许我们使用树形结构来表示部分与整体的关系,使得我们可以在统一的接口下处理单个对象和对象的组合。在C#中,这种模式常用于处理对象集合,尤其在文件系统、组织结构或者树形菜单...
组合模式是一种设计模式,属于结构型模式,它允许我们以统一的方式处理单个对象和对象集合。在C#中,组合模式的应用可以帮助我们构建树形结构,并以一致的方法处理叶子节点(基本元素)和树枝节点(包含其他节点的...
组合模式是一种设计模式,它将对象组织成树形结构,使得用户可以对单个对象和对象集合进行统一处理。在“最简单的实现组合模式”中,我们关注的是如何以最直观、最少依赖的方式体现这种模式的核心思想。 组合模式的...
使用组合模式有如下的好处: l 定义了饱含基本对象和组合对象的类层次结构,基本对象可以被组合成更复杂的组合对象,而这个组合对象有可以被组合。 简化客户代码 客户可以一直地使用组合结构和单个对象,通常用户不...
组合模式是一种结构型设计模式,它允许我们使用树形结构来表示部分与整体的关系,使得我们能够以统一的方式来处理单个对象和对象的组合。在组合模式中,单个对象和组合对象都被视为同一类型,这使得客户端代码可以对...
java设计模式【之】组合模式【源码】【场景:遍历目录树】 * 组合模式 * 将对象组合成树结构,表示 “部分与整体” 的关系 * 要求 部分与整体,具备相同的父类 * * 代码实现 * 输出当前目录下,全部目录层级...
**Android组合模式简单Demo** 在Android开发中,设计模式是一种重要的编程思想,它能帮助我们构建更加优雅、可维护的代码结构。其中,组合模式(Composite Pattern)是一种结构型设计模式,它允许我们以树形结构来...