若是逻辑上A是B的“一部分”(a part of),则不允许B从A派生,而是要用A和其他东西组合出B。

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

读书笔记之组合class Eye 

Head由Eye、Nose、Mouth、Ear组合而成。如果允许Head从Eye、Nose、Mouth、Ear派生而成,那么Head将自动具有Look、Smell、Eat、Listen这些功能。程序十分简短并且运行正确,但是下面这种设计方法却是不对的。

读书笔记之组合class Head:public Eye,public Nose,public Mouth,public Ear
读书笔记之组合

 

相关文章: