组合模式学习笔记

来源:互联网 发布:steam 汉化 知乎 编辑:程序博客网 时间:2024/05/01 20:12

        组合模式学习笔记:

       1、简介

       组合模式又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦

         2、用途

        对用户隐藏组合对象与单个对象的不同,使用户对单个对象和组合对象使用具有一致性。

         3、结构图:

        

         4、分类

        安全形式的组合模式:

        安全形式是在Composite类中声明所有用来管理子类对象的方法,包括add()、remove()以及getChild()方法,而在Component接口和叶类型的对象中不包含管理子类对象的方法。

 优点:这样做是安全的,如果客户端对树叶类对象使用这些方法时,程序将在编译时报错。

缺点:Component层次结构类的超类与组合子类的接口不一致。


                 透明形式的组合模式:
                 在Component类中声明所有用来管理子类对象的方法,包括add()、remove()以及getChild()方法.

                 优点:所有的构件类都具有了相同的接口,客户端可以等同的对待所有的对象。
                 缺点:不够安全,树叶类对象与组合类对象在本质上还是有区别的,树叶类对象不可能有下一个层次的对象,不需要add()、remove()以及getChild()方法。


0 0
原创粉丝点击