composite是树形结构,那么我下面就用树的结构来写代码,希望对大家有所帮助 ======================================================================
//分支
public interface Brache {
public void run();
}
======================================================================
//花
public class Flower implements Brache {
public void run() {
System.out.println("花儿怒放^_^");
}
}
======================================================================
//叶子
public class Leaf implements Brache {
public void run() {
System.out.println("叶子长大了");
}
}
======================================================================
//主干
public class Trunk implements Brache {
private List<Brache> components = new ArrayList<Brache>();
public void addComponent(Brache component) {
if (component instanceof Leaf) {
System.out.println("长新叶了");
} else if (component instanceof Flower) {
System.out.println("花苞初成");
}
components.add(component);
}
public void removeComponent(Brache component) {
if (component instanceof Leaf) {
System.out.println("叶子枯了");
} else if (component instanceof Flower) {
System.out.println("花儿谢了");
}
components.remove(component);
}
public List<Brache> getAllCompoments() {
return components;
}
public void run() {
for (Brache tempC : components) {
tempC.run();
}
}
}
======================================================================
public class Client {
//客户的(演示主干的形成)
public static void main(String[] args) {
//叶子
Leaf leaf = new Leaf();
//含苞的花儿啊
Flower flower = new Flower();
//主干一号
Trunk trunk1 = new Trunk();
trunk1.addComponent(leaf);//长出一片叶子
trunk1.addComponent(flower);//冒出花苞
trunk1.addComponent(flower);//冒出花苞
trunk1.addComponent(flower);//冒出花苞
//主干二号
Trunk trunk2 = new Trunk();
//枝繁叶茂
trunk2.addComponent(leaf);//长出一片叶子
trunk2.addComponent(leaf);//长出一片叶子
trunk2.addComponent(leaf);//长出一片叶子
trunk2.addComponent(leaf);//长出一片叶子
trunk2.addComponent(leaf);//长出一片叶子
//原来主干2是长在主干1上的分支
trunk1.addComponent(trunk2);
//像电影一样播放了
trunk1.run();
}
}
======================================================================
看了网上有的兄台写的资料,学习了一下,稍微做了个整理,希望对要学习的兄台有所帮助。呵呵!
分享到:
- 2009-09-29 16:45
- 浏览 821
- 评论(4)
- 论坛回复 / 浏览 (4 / 2637)
- 查看更多
相关推荐
组合模式(Composite Pattern)-结构型模式 (0%) <br>讲义书写模式 在实际的讲解中我会用一套模式来讲述我对设计模式的理解 1.给出当前章节模式的名称 2.讲述一个小故事,提出问题 3.回答这个...
设计模式之 Composite(组合) 就是将类用树形结构组合成一个单位.你向别人介绍你是某单位,你是单位中的一个元素,别人和你做买卖,相当于 和单位做买卖。文章中还对 Jive再进行了剖析。 设计模式之 Decorator(装饰...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
除了这些大家耳熟能详的设计模式之外,本书还探讨了一些不那么著名的模式,如备忘录模式(Memento)、组合模式(Composite)、命令模式(Command)和中介者模式(Mediator)。这些模式虽然可能没有前几种那么...
混编模式讲解可能探讨了如何将不同的设计模式组合使用以解决更复杂的软件问题。 阅读这本书的读者,不论是否具备编程基础,都能从中学到如何设计出更好的代码。对于初级程序员,它提供了编码的指导;对于高级...
第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器模式...
本文实例讲述了Python设计模式之组合模式原理与用法。分享给大家供大家参考,具体如下: 组合模式(Composite Pattern):将对象组合成成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
9. **设计模式的组合使用**:讲述如何将组合模式与其他设计模式结合,解决更复杂的软件设计问题。 通过学习这个课程,开发者能够深入理解组合模式的工作原理,提高设计和实现复杂系统的技能,使代码更加灵活、可...
3. 组合模式(Composite):允许你将对象组合成树形结构,表现得像单个对象。 4. 装饰模式(Decorator):动态地给一个对象添加一些额外的职责,即扩展功能而不影响其结构。 5. 外观模式(Facade):提供一个简单的...
《Head.First设计模式》是软件开发领域中一本非常受欢迎的书籍,它以通俗易懂的方式讲解了设计模式这一复杂的主题。在22到39章节中,作者深入浅出地探讨了多个关键的设计模式,这些模式对于使用C#进行软件开发的...
第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器...
第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器...
第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器...
第15章 组合模式(Composite) 第16章 模板方法模式(Template Method) 第17章 策略模式(Strategy) 第18章 状态模式(State) 第19章 备忘录模式(Memento) 第20章 享元模式(Flyweight) 第21章 解释器...
2. **结构型模式**:包括适配器模式(Adapter)、桥接模式(Bridge)、装饰器模式(Decorator)、外观模式(Facade)、享元模式(Flyweight)、组合模式(Composite)和代理模式(Proxy)。这些模式处理类和对象之间...
书中除了介绍这些设计模式的基本概念外,还会详细分析这些模式在Android源码中的具体应用,包括但不限于源码中使用的类、接口和对象创建方式。作者会从源码的角度出发,剖析模式的实际代码实现,帮助读者深入理解...
本文实例讲述了php设计模式之组合模式。分享给大家供大家参考,具体如下: 星际里面我们可以下载别人制作的地图,或者自己做地图玩。 我们在选择玩哪张地图的时候,可以看到游戏列出当前地图包里面的地图或地图包的...