23种设计模式之组合模式

基本介绍

1.组合模式又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“部分-整体”的层次关系
2.组合模式依据树形结构来组合对象,用来表示部分以及整体的层次关系
3.组合模式属于结构型模式
4.组合模式能让用户对单个对象和组合对象的访问具有一致性

原理结构

1.Component:这是组合中对象声明接口,在适当的情况下,实现所有类共有的接口默认行为,用于访问和管理Component子部件,Component可以是抽象类或接口
2.Leaf:在组合中表示叶子节点,叶子节点没有子节点
3.Composite:非叶子节点,用于存储子部件,在Component接口中实现子部件的相关操作,比如增加和删除

解决的问题

1.当我们要处理的对象可以生成一颗树形结构,而我们要对树上的节点和叶子进行操作时,它能提供一致的方式,而不用考虑它是节点还是叶子

代码示例

解决学校院系管理的问题,代码详见:https://gitee.com/ldj123/design-patterns.git

jdk应用

HashMap 可作为组合模式的一个应用

23种设计模式之组合模式_第1张图片
说明:

  • Map就是一个抽象的构建(类似component)
  • HashMap是一个中间的构建(类似composite),实现/继承了相关方法put()、putAll()
  • Node是HashMap的静态内部类,类似Leaf叶子节点,无put()、putAll()方法

你可能感兴趣的:(设计模式,Java基础)