参考书籍
阎老师的<java与模式>
----------------------------------------------------我是分割线---------------------------------------------
定义:在阎老师的书里没有给出一个确切的定义 ,只有一个简单定义:合成模式就是把整体和部分用树型结构表示出来
典型案例:java.io.file类
--------------------------------------------------我是分割线----------------------------------------------
部分和整体来自同一个父类 但是 部分又和整体不一样 整体里面包括部分和整体 就是一棵树
书里合成模式又分为 安全的合成模式和透明的合成模式
安全的合成模式
整体和部分都来自于同一个接口
接口里面仅仅只有用来区分整体和部分的公共方法
整体不仅实现了部分的接口 同时实现了他自己的特别的方法
透明的合成模式
整体和部分都来自于同一个接口
接口里面包括了整体的所有的方法
整体和部分同时实现了接口里面的所有方法
-------------------------------------------我是分割线-----------------------
从这里可以看出 关于合成模式的分类 主要 取决于 接口里面方面 到底是整体的还是部分的
如果是整体的 就是透明的合成模式 也就是在 部分也实现了这些方法 但是都是一些平庸实现 对部分的某些方法访问会有一些问题
如果是部分的 就是安全的合成模式 此时 整体和部分方法的访问都是安全的