(文章翻译自Java Design Pattern: Composite)

组合模式相对来说是比较简单的,但是它在很多设计中被用到,比如SWT、Eclipse工作空间等等。它创建了一个可以通过唯一的方法访问的继承树。

类图

下面的代码实现了下面树的结构

Java 代码

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);}@Overridepublic 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();}
}

转载于:https://www.cnblogs.com/zhangminghui/p/4214715.html

[译]Java 设计模式之组合相关推荐

  1. java设计模式之组合模式(树形层级)

    java设计模式之组合模式 学习难度:★★★☆☆,使用频率:★★★★☆]  树形结构在软件中随处可见,例如操作系统中的目录结构.应用软件中的菜单.办公系统中的公司组织结构等等,如何运用面向对象的方式来 ...

  2. Java设计模式之组合模式详解

    文章目录 详解Java设计模式之组合模式 案例引入 组合模式 定义 模式类图结构 相关角色 典型代码 案例分析 类图设计 实例代码 结果分析 JavaJDK中的组合模式 透明组合模式 安全组合模式 组 ...

  3. Java设计模式之组合模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

  4. 【Java设计模式】组合模式

    转自:  https://blog.csdn.net/qq_42322103/article/details/95457321 漫谈网站优化提速: https://blog.csdn.net/mete ...

  5. Java设计模式中组合模式是什么/树形结构怎么组合或显示存储,编程怎么实现树形结构

    继续整理记录这段时间来的收获,详细代码可在我的Gitee仓库Java设计模式克隆下载学习使用! 5.7 组合模式 5.7.1 概述 又名整体模式,是用于把一组相似的对象当作一个单一的对象 依据树形结构 ...

  6. java设计模式之备忘_[译]Java 设计模式之备忘录

    memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态. 在将来时空旅行将成为显示.而备忘录将使时空旅行的关键.主要的讲,它是怎么使一个对象对到它以前的一个 ...

  7. Java 设计模式之组合模式

    一.了解组合模式 1.1 什么是组合模式 组合模式允许你将对象组合成树形结构来表现"整体/部分"层次机构.组合能够使客户以一致的方式处理个别对象以及组合对象. 组合模式让我们能够用 ...

  8. [译]Java 设计模式之命令

    (文章翻译自Java Design Pattern: Command) 命令设计模式在进行执行和记录的时候需要一个操作及其参数和封装在一个对象里面.在下面的例子中,命令是一个操作,它的参数是一个Com ...

  9. java设计模式用组合模式实现树形结构

    现有如下需求,某公司的机构: +公司 +分公司 +本地分公司 -呼和浩特 +包头 -昆区办事处 -青山办事处 +外地分公司 +总部 -人事处 +办公室 +财务处 实现思路: 抽象组合类,叶子类,根类 ...

  10. (设计模式十一)java设计模式之组合模式

    定义: 组合模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这种类型的设计模式属于结构型模式,它创建了对象组的树形结构.这种模式创建了一个包含 ...

最新文章

  1. Ubuntu 14.04 64bit上编译安装MonaServer并测试
  2. poj 1284 Primitive Roots(原根+欧拉函数)
  3. CTFshow php特性 web134
  4. phpcms黄页,不能选择行业。解决办法
  5. 001 GIt的基本操作
  6. Angulary应用依赖里的platform-browser
  7. 使用onclick跳转到其他页面。使用button跳转到指定url
  8. LeetCode 930. 和相同的二元子数组(哈希+前缀和)
  9. idea maven插件tomcat内存溢出
  10. 【Flutter】Dart的工厂构造方法单例对象初始化列表
  11. HDFS API操作的访问方式及JUnit测试类的使用
  12. slub分配流程-kmem_cache_alloc函数
  13. 完美打造安全的系统。
  14. Podfile 文件写法
  15. 兄弟7180dn拆机_兄弟DCP-7010拆机图解
  16. sql查询语句中分组添加小计,GROUPING的使用
  17. 计算机培训word,计算机培训word2010.pptx
  18. SSM毕设项目毕业生就业推荐平台s0m59(java+VUE+Mybatis+Maven+Mysql)
  19. 杜邦分析法拆解三种商业模式
  20. 泉州集训之HSY的day1

热门文章

  1. 管理感悟:眼高手低到眼高手高
  2. 继承与data member之虚拟继承
  3. Day_05显示鼠标
  4. 将linux文件拷贝到windows,Windows与Linux系统拷贝文件之pscp的使用分享
  5. linux补丁服务,Linux补丁程序管理_补丁工具 _ ManageEngine Desktop Central
  6. python 转成摩尔斯电码_【无线电史话】比莫尔斯电码更直观 | 1919年的护林员通过Myer码传递信息...
  7. redis java 视频教程_redis从入门到精通视频教程【50讲全】
  8. android socket 失败,安卓Socket发起失败 急
  9. java中多态含有math类_Java面试题汇总《Java基础、语法51-55》
  10. 找出不是两个数组共有的元素_[数组] N数之和问题