组合模式(Composite)相对比较简单;但是在关于设计的地方很多都用到了这种模式。例如,SWT,Eclipse Workspace等等。组合模式一般用来生成一个可以通过同一方法来访问不同层级的树。
1、类图
下面的代码例子实现了如下树状数据结构。
2、代码实例
import java.util.List; import java.util.ArrayList; //Component interface Component { public void show(); } //Composite class Composite implements Component { private List<Component> childComponents = new ArrayList<Component>(); public void add(Component component) { childComponents.add(component); } public void remove(Component component) { childComponents.remove(component); } @Override public void show() { for (Component component : childComponents) { component.show(); } } } //leaf class Leaf implements Component { String name; public Leaf(String s){ name = s; } public void show() { System.out.println(name); } } public class CompositeTest { public static void main(String[] args) { Leaf leaf1 = new Leaf("1"); Leaf leaf2 = new Leaf("2"); Leaf leaf3 = new Leaf("3"); Leaf leaf4 = new Leaf("4"); Leaf leaf5 = new Leaf("5"); Composite composite1 = new Composite(); composite1.add(leaf1); composite1.add(leaf2); Composite composite2 = new Composite(); composite2.add(leaf3); composite2.add(leaf4); composite2.add(leaf5); composite1.add(composite2); composite1.show(); } }
3、实际应用
Android中的视图描画过程。ViewGroup中的dispatchDraw,统一调用View的draw方法,来完成树状视图的描画。
相关推荐
7. 组合模式(Composite):将对象组合成树形结构以表示“部分-整体”的层次结构。它使得用户对单个对象和组合对象的使用具有一致性。 8. 装饰模式(Decorator):动态地给一个对象添加一些额外的职责。装饰者模式...
如适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、装饰者模式(Decorator)、外观模式(Facade)、享元模式(Flyweight)和代理模式(Proxy)等。 - **行为型模式**:关注于对象间的职责分配,...
总之,《设计模式:基于C#的工程化实现及扩展》是一本对于C#开发者来说非常有价值的参考资料,它不仅讲解了设计模式的理论,还提供了丰富的实践案例,帮助读者掌握如何在实际项目中应用这些模式,提升软件开发的专业...
2.2.3 组合模式 27 2.3 格式化 27 2.3.1 封装格式化算法 27 2.3.2 compositor和composition 27 2.3.3 策略模式 29 2.4 修饰用户界面 29 2.4.1 透明围栏 29 2.4.2 monoglyph 30 2.4.3 decorator 模式 32 2.5...
在给定的标题和描述中,提到了三种特定的设计模式:组合模式、公司管理系统以及迭代器模式。让我们深入探讨这三种模式以及它们在Java编程中的应用。 1. **组合模式**: 组合模式是一种结构型设计模式,它允许我们...
《设计模式:可复用面向对象软件的基础》一书介绍了23种经典的设计模式,这些模式大致可以分为三大类: 1. **创建型模式**:专注于对象的创建机制,确保系统在合适的时机创建正确的对象。 - **单例模式**...
- 组合模式:在场景图中表示对象和子对象,实现一致的处理方式; - 装饰模式:为游戏对象动态增加功能,如给角色动态增加装甲或魔法效果等; - 代理模式:用于控制对游戏资源的访问,如延迟加载或异步加载资源。 ...
组合模式(Composite Pattern):将对象组合成树形结构,以便于对对象的管理和操作。 适配器模式(Adapter Pattern):将一个类的接口转换为另一个类的接口,以便于不同类之间的通信和合作。 外观模式(Facade ...
本实验报告主要探讨了五个关键的设计模式:组合模式、外观模式、代理模式、观察者模式以及策略模式,这些都是软件体系结构中的重要组成部分,对于理解和优化代码结构具有深远影响。 1. **组合模式**: 组合模式是一...
2. **结构型模式**:如适配器模式、装饰器模式、代理模式、桥接模式、组合模式、外观模式和享元模式。这些模式关注如何将类或对象以某种方式组合起来,以实现新的功能或改善现有结构。 3. **行为型模式**:包括责任...
组合模式作为一种强大的设计模式,通过将对象组合成树形结构,可以表示“部分-整体”的层次结构,并统一地处理单个对象和组合对象,简化了客户端代码的复杂性,从而提高代码的灵活性和可扩展性。在实际开发中,它在...
总的来说,《设计模式:可复用面向对象软件的基础》是一本深入理解和应用面向对象设计的必备书籍,它不仅介绍了23种核心设计模式,还提供了大量实例和解释,帮助读者将理论知识转化为实际的编程技巧。通过对这本书的...
8. 组合模式:组合模式将对象组合成树形结构,可以表示部分与整体的关系,使得用户对单个对象和组合对象的使用具有一致性。 9. 装饰模式:装饰模式动态地给对象添加一些额外的职责,提供比继承更具有弹性的扩展方式...
一、概述 在Java中,组合模式用于将对象组合成树结构,以表示...在软件工程中,组合模式是一种分区设计模式。组合模式描述了一组对象应被视为单个对象的实例来处理。组合的意图是将对象“组合”成树结构,以表示部分
在《设计模式:可复用面向对象软件的基础》一书中,作者Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides(通常被称为GoF,Gang of Four)详细阐述了23种经典的设计模式。这些模式分为三类:创建型模式、...
3. 组合模式:允许你将对象组合成树形结构,表现得像单个对象。 4. 装饰模式:动态地给一个对象添加一些额外的职责,增加功能而不改变其原有结构。 5. 外观模式:为复杂的子系统提供一个简单的接口。 6. 享元模式:...
- 组合模式:允许你将对象组合成树形结构来表示“部分-整体”的层次结构。 - 装饰模式:动态地给对象添加一些额外的职责,为对象添加新的行为或属性而不改变其结构。 - 外观模式:提供一个统一的接口,用来访问子...
- Composite模式:将对象组合成树形结构以表示“部分-整体”的层次结构,使得客户对单个对象和组合对象的使用具有一致性。 - Flyweight模式:运用共享技术有效地支持大量细粒度的对象。 - Facade模式:为子系统中的...
结构型模式包括但不限于适配器模式、桥接模式、组合模式等。通过这些模式的应用,可以使系统结构更加清晰,易于理解和维护。 #### 第四部分:行为型模式 这部分关注于应用运行过程中算法的提供和通信关系的梳理。...