继承与组合

来源:互联网 发布:淘宝裤子主图折叠方法 编辑:程序博客网 时间:2024/04/24 22:32

      在《高质量程序设计指南》中,作者林锐对“继承”做了一个很完整的定义:若在逻辑上B是A的“一种”,并且A的所有功能和属性对B而言都有意义,则允许B继承A的功能和属性。

    以上定义的完整性,可以从一个不科学的类继承中感受出来。

      

      组合(Composition)也是一种类的复用技术,用于表示类的“整体与部分”关系,继承则表示类的“一般与特殊”关系,两者不可混为一谈。

     《高质量程序设计指南》中规则12-4做了如下规定:若在逻辑上A是B的“一部分”(is a part of),则不允许B从A派生,而是要用A和其他部分组合出B。

      例如眼(Eye),鼻(Nose),口(Mouth),耳(Ear)是头(Head)的一部分,所以类Head应该由Eye,Nose,Mouth,Ear组合而成,不是派生而成。

原创粉丝点击