Android设计模式-18-组合模式

1.定义

也叫部分整体模式;

将对象组合成树形结构以表示 “部分-整体” 的层次结构,使得用户对单个对象和组合对象的使用具有一致性;

2. 使用场景:

部分、整体场景,如树形菜单,文件、文件夹的管理等

3. 优缺点

  • 优点:
  1. 清楚的定义分层次的复杂对象, 表示对象的全部或部分层次,让高层模块忽略了层次的差异,方便对整个层次结构进行控制
  2. 高层模块可以一致的使用一个组合结构或其中单个对象,不必关心处理的是单个对象还是整个组合结构,简化了高层模块的代码
  3. 增加新的枝干构件和叶子构件都很方便,无需对现有类库进行更改,符合开闭原则
  4. 为树形结构的面向对象实现提供了一种灵活的解决方案,通过叶子对象和枝干对象的递归组合,可以形成复杂的树形结构,但对树形结构的控制却非常简单
  • 缺点:
    新增构件时不好对枝干中的构件类型进行限制,不能依赖类型系统来施加这些约束,因为大多数情况,它们都来自相同的抽象层,此时必须进行类型检查,实现过程较为复杂

4. Android源码中的应用:

组合模式在Android中最明显的应用就是View,ViewGroup及其子孙类(各种控件)所构成的UI体系;

5. 实例演示

以电脑中的文件和文件夹为例

1. 首先创建一个文件系统中元素的基类,包含文件/文件夹的一些基本属性和操作他们的方法

Android设计模式-18-组合模式

2. 创建一个基类的实现--文件类

Android设计模式-18-组合模式

3. 创建基类的另一种实现类--文件类

Android设计模式-18-组合模式

4. 创建文件及文件夹实例,组合成文件系统

Android设计模式-18-组合模式

 我是今阳,如果想要进阶和了解更多的干货,欢迎关注公众号”今阳说“接收我的最新文章

Android设计模式-18-组合模式

猜你喜欢

转载自blog.csdn.net/o118abcdef/article/details/113172789