设计模式第八篇-结构型模式【组合模式】

设计模式案例分析-github

一、什么是组合模式?

 1、将对象组合成树形结构,已表示“整体"与"局部"的层次结构,使用用户对单个对象(比如叶子)和组合对象(非叶子节点)的使用具有一致性,用户不需要关系操作的节点是基本对象节点还是组合对象节点

 通俗理解: 就是非叶子节点的方法,叶子节点一样可以调用,只不过是在叶子节点的实现方法中,告诉用户无效或者无法操作该方法,有人会问,既然不能用为啥要暴露? 我想是不是有个场景: 如果当初的叶子节点,后面需求改为是非叶子节点,也可以添加孩子,那是不是要去改原来的叶子节点代码,让它去支持非叶子节点的相关操作,而使用”一致性" 后,只要改实现类即可。

二、角色?

   1、角色一:  抽象节点,定义组合对象的共有方法和属性

   2、角色二:  具体节点(树枝节点), 定义组合树枝节点和叶子节点形成一个树形结构。

   3、角色三:  叶子节点,  构成组合树的最小构建单元。

三、Android中用到的 View的结构图


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 场景问题# 1.1 商品类别树## 考虑这样一个实际的应用:管理商品类别树。 在实现跟商品有关的应用系统的时候...
    七寸知架构阅读 6,060评论 10 59
  • 【学习难度:★★★☆☆,使用频率:★★★★☆】直接出处:组合模式梳理和学习:https://github.com/...
    BruceOuyang阅读 1,015评论 0 1
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,961评论 1 15
  • 真诚的,TNANKS。 个人Github-23种设计模式案例链接 创建型模式 工厂模式 工厂模式(Factory ...
    水清_木秀阅读 26,142评论 11 204
  • 青梅绿茶是我在唐山喝到的一种饮料。这一年,我告别校园,分配到一个小镇上工作,与其说是小镇,其实更像是一个五脏俱全的...
    颂小宋阅读 1,354评论 0 0