一、java對象導論之複用

複用具體實現

還有朋友分不清組合和聚合的區別嗎?那就一起先來回顧下組合和聚合。

  • 組合:java思想中稱其爲“has-a”的擁有關係。書中的例子講的是:汽車和引擎的關係,當汽車擁有引擎時纔可以開動,如果汽車沒了引擎就沒法開動,引擎離開汽車就只是引擎了。如果前邊的例子不好理解,網上有個比較鮮明的例子,拿過來再和大家分享一下:部分和整體是與生俱來的,但是部分的生命要依賴與整體的。就比如人和人的器官,人一出生,器官就存在了,人如果沒有了生命,器官就沒有的意義。

  • 聚合:所謂組合是“動態”發生的,那就要稱爲聚合。再舉一個大家經常比喻的例子:小明和小明的手機。小明的手機屬於小明,但是手機是廠家生產出來的,只不過後來小明買了過來。如果小明某一天沒有生命了,但是手機還是可以給別人用的。不存在部分的生命依存於整體。(小明好慘~)

java中複用的意義:設計清晰,靈活。

  • 一旦類被創建完和測試完,在理想的狀況下他應該是可以被別人直接使用的。最簡單的複用某個類的方式就是直接使用該類的一個對象,此外也可以將那個類的一個對象至於某個新的類中。一般稱爲“創建一個成員對象”。

  • 組合帶來了極大的靈活,新類的成員對象通常都被聲明爲private,使的類的消費者不能訪問。當優化對象相關的程序時,不會產生較大的影響。

還有一點值得注意,那就是在設計類時要區分組合和繼承,並不是所有業務都適合用繼承,組合亦是如此。選取組合或繼承自行根據業務考慮吧

(下一篇簡單介紹繼承的概念)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章