将对象组合成树状层出结构,使用户能一致地使用叶子节点和分支节点
package com.jerry.design.composite;
import java.util.ArrayList;
import java.util.List;
// 测试类
public class Test {
public static void main(String[] args) {
Component root = new Composite();
Component c1 = new Composite();
Component c2 = new Composite();
Component l1 = new Leaf();
Component l2 = new Leaf();
Component l3 = new Leaf();
root.addChild(c1);
root.addChild(c2);
root.addChild(l1);
c1.addChild(l2);
c1.addChild(l3);
System.out.println(root.getChild(0));
System.out.println(root.getChild(1));
System.out.println(root.getChild(2));
}
}
interface Component{
public void doSomething();
public void addChild(Component c);
public void removeChild(Component c);
public Component getChild(int index);
}
class Composite implements Component{
private List<Component> children = null;
@Override
public void doSomething() {
if(children!=null){
for(Component c:children){
c.doSomething();
}
}
}
@Override
public void addChild(Component c) {
if(children==null){
children = new ArrayList<Component>();
}
children.add(c);
}
@Override
public void removeChild(Component c) {
if(children!=null){
children.remove(c);
}
}
@Override
public Component getChild(int index) {
if(children!=null){
return children.get(index);
}
return null;
}
}
class Leaf extends Composite{
public void doSomething() {
System.out.println("Leaf is doSomething()");
}
}
分享到:
相关推荐
组合模式(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