Emove

  • 首页
  • 归档
  • 分类
  • 标签

  • 搜索
context 反射 channel LRU BeanDefinition JVM 装饰者模式 MyBatis 快慢指针 归并排序 链表 hash表 栈 回溯 贪心 主从复制 二分查找 双指针 动态规划 AOF RDB 规范 BASE理论 CAP B树 RocketMQ Sentinel Ribbon Eureka 命令模式 访问者模式 迭代器模式 中介者模式 备忘录模式 解释器模式 状态模式 策略模式 职责链模式 模板方法模式 代理模式 享元模式 桥接模式 外观模式 组合模式 适配器模式 建造者模式 原型模式 工场模式 单例 UML 锁 事务 sql 索引

组合模式

发表于 2020-04-04 | 分类于 设计模式 | 21 | 阅读次数 138

组合模式

基本介绍

  1. 组合模式,又叫部分整体模式、他创建了对象组的属性结构,将对象组合成树状结构以表示“整体 - 部分”的层次关系
  2. 组合模式依据属性结构来组合对象,用来表示部分以及整体层次
  3. 这种类型的设计模式属于结构型模式
  4. 组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象

组合模式原理图

组合模式原理结构图说明:

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

组合模式的注意事项和细节

  1. 简化操作,编写时只需面对一致的对象而不用考虑整体部分或者节点叶子的问题
  2. 具有较强的扩展性,当需要更改组合对象时,只需调整内部的层次关系
  3. 方便创建出复杂的层次结构,不用理会组合里面的组成细节,容易添加节点或者叶子从而创建出复杂的属性结构
  4. 需要遍历组织机构,或者处理的对象具有树形结构时,非常适合使用组合模式
  5. 要求较高的抽象性,如果节点和叶子有很多差异性的话,比如很多方法和属性都不一样,则不适合使用组合模式
# context # 反射 # channel # LRU # BeanDefinition # JVM # 装饰者模式 # MyBatis # 快慢指针 # 归并排序 # 链表 # hash表 # 栈 # 回溯 # 贪心 # 主从复制 # 二分查找 # 双指针 # 动态规划 # AOF # RDB # 规范 # BASE理论 # CAP # B树 # RocketMQ # Sentinel # Ribbon # Eureka # 命令模式 # 访问者模式 # 迭代器模式 # 中介者模式 # 备忘录模式 # 解释器模式 # 状态模式 # 策略模式 # 职责链模式 # 模板方法模式 # 代理模式 # 享元模式 # 桥接模式 # 外观模式 # 组合模式 # 适配器模式 # 建造者模式 # 原型模式 # 工场模式 # 单例 # UML # 锁 # 事务 # sql # 索引
桥接模式
外观模式
  • 文章目录
  •   |  
  • 概览
林亦庭

林亦庭

less can be more

87 文章
11 分类
54 标签
RSS
Github
Creative Commons
© 2021 林亦庭
粤ICP备20029050号