Composite/Aggregate ReusePrinciple ,CARP: 要盡量使用對象組合,而不是繼承關(guān)系達到軟件復用的目的。
組合/聚合可以使系統(tǒng)更加靈活,類與類之間的耦合度降低,一個類的變化對其他類造成的影響相對較少,因此一般首選使用組合/聚合來實現(xiàn)復用;其次才考慮繼承,在使用繼承時,需要嚴格遵循里氏代換原則,有效使用繼承會有助于對問題的理解,降低復雜度,而濫用繼承反而會增加系統(tǒng)構(gòu)建和維護的難度以及系統(tǒng)的復雜度,因此需要慎重使用繼承復用。
此原則和里氏代換原則氏相輔相成的,兩者都是具體實現(xiàn)"開-閉"原則的規(guī)范。違反這一原則,就無法實現(xiàn)"開-閉"原則。