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