组合模式|组合模式 - Component (结构)
*场景:类似文件夹
呈现方式 打印部门所有人的工资情况
场景一:表示对象整体和部分结构的时候
场景二:从一个整体中能够独立出部分模块或者功能
*定义
将对象组合成树状结构以表示部分和整体
的层次结构,是的用户对单个对象和组合对象的使用具有一致性
UIView?->组合模式
Root(根节点)
view.addSubView()
添加节点
*角色
角色一:抽象根节点(Component:为组合中的对象声明接口)
对组合对象进行抽象
角色二:具体子节点(Composite)
角色三:叶子节点(Leaf:没有子节点,作用:在组合中定义节点对象的行为)
*原理案例
案例一:原理案例
第一步:定义抽象根节点
Dream_ComponentProtocol
第二步:定义具体的子节点
Dream_Composite
第三步:叶子节点
Dream_Leaf
分析问题
1、您想表示对象的部分-整体层次结构(树形结构)。 2、您希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
做架构设计,其实就是定义接口(定义协议)
接口设计->影响到了实现
共性问题
案例二:改进案例
第一步:设计接口(抽象节点)
第二步:实现类(具体子节点)
【组合模式|组合模式 - Component (结构)】第三步:实现叶子节点
推荐阅读
- 21天|21天|羊多多组合《书都不会读,你还想成功》
- --木木--|--木木-- 第二课作业#翼丰会(每日一淘6+1实战裂变被动引流# 6+1模式)
- 设计模式-代理模式-Proxy
- 2018-08-29|2018-08-29 - 草稿 - 草稿
- (六)Component初识组件
- 【译】Rails|【译】Rails 5.0正式发布(Action Cable,API模式等)
- java静态代理模式
- VueX(Vuex|VueX(Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式)
- Kotlin基础(10)-代理模式在kotlin中的使用
- 长谈的确是这个时代需要的一种模式