組合/聚合復用原則


組合/聚合復用原則(Composite/Aggregate Reuse Principle)是面向對象設計原則的一種。組合/聚合復用原則是指盡量使用組合/聚合,不要使用類繼承。在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分,新對象通過向這些對象的委派達到復用已有功能的目的。就是說要盡量的使用合成和聚合,而不是繼承關系達到復用的目的。

組合/聚合復用原則

 

組合/聚合復用原則是什么

  • 盡量采用組合(contains-a)、聚合(has-a)的方式而不是繼承(is-a)的關系來達到軟件的復用目的

假如新對象的一些功能在其他已經創建好的對象里面已經實現,那么應該盡可能使用其他對象提供的功能,使之成為新對象的一部分,而不要再重新創建。

組合/聚合的優點:類相互間的耦合度比較低,一個類的變動對別的類造成的影響較為少,組合/聚合的缺點:類的數量增多實現起來較為復雜

組合/聚合復用原則好處

  • 可以降低類與類之間的耦合程度
  • 提高了系統的靈活性

組合/聚合復用原則例子

 

    public void talk(String name) {
        System.out.println(name + " say hello"); } public void walk(String name) { System.out.println(name + " move"); } } public class Manager extends Person { } public class Employee extends Person { }

 

根據組合/聚合復用原則大家需要首選組合,然后才能是繼承,使用繼承時需要嚴格的遵守里氏替換原則,務必滿足“Is-A”的關系是才可以使用繼承,而組合卻是一種“Has-A”的關系。

由上面的代碼能夠看出,Manager和Employee繼承了Person,但實際上每一個不同的職位具有不同的角色,如果大家填加了角色這個類,那麼繼續使用繼承的話只能使每個人只能具有一種角色,這顯然是不科學的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM