设计模式:组合模式
什么是组合模式?
组合模式(英文:Composite Pattern),将对象组合成树状层次结构,使用户对单个对象和组合对象具有一致的访问性。

一句话归纳
部分-整体的层次结构
代码示例
组合模式一般描述整体和部分的关系,他把所有对象以树形结构的形式展现,顶级节点被称为根节点,根节点下面可以是树枝节点,也可以是叶子节点,树枝节点下面又可以是树枝节点和叶子节点,叶子节点下面则没有任何节点。

注意:在叶子类中的几个方法为什么要加个Deprecated注解呢?就是在编译器期告诉调用者,调用这个方法,但是会出现错误,已经告诉“该方法已经失效”了,还使用那在运行器也会抛出UnsupportedOperationException异常。
适用性
以下我建议你考虑使用:
只要是整体和部分的关系都可以,比如公司组织架构、菜单、文件夹等等;
叶子节点可以自由地增加。
局限性
以下我建议你谨慎使用:
设计复杂,客户端需要更多的时间清理层次关系。
透明的组合模式和安全的组合模式
透明模式,是把用来组合使用的方法放到抽象类中,不管叶子节点还是树枝节点都有相同的结构,如果处理不当,这个会在运行期出现问题,不是很建议的方式;
安全模式,是把树枝节点和树叶节点彻底分开,树枝节点单独拥有用来组合的方式,这种方式比较安全。

写在最后
最后,好兄弟,记得点赞,关注,谢谢。
