如果你確定兩件物件之間是is-a的關係,那麼此時你應該使用繼承;比如菱形、圓形和方形都是形狀的一種,那麼他們都應該從形狀類繼承而不是聚合。
如果你確定兩件物件之間是has-a的關係,那麼此時你應該使用聚合;比如電腦是由顯示器、cpu、硬碟等組成的,那麼你應該把顯示器、cpu、硬碟這些類聚合成電腦類,而不是從電腦類繼承。
類間的關係
網上關於此類的討論非常多,發現對於該問題的理解各有各的說法,而各個說法中又相去甚遠。通過瀏覽這些討論以及對《o'reilly - uml 2.0 in a nutshell (2007)》的參考,發表一下自己的看法
類間關係有很多種,在大的類別上可以分為兩種:縱向關係、橫向關係。
縱向關係就是繼承關係,它的概念非常明確,也成為oo的三個重要特徵之一,這裡不過多的討論。
橫向關係較為微妙,按照uml的建議大體上可以分為四種:
依賴 (dependency)
關聯 (association)
聚合 (aggregation)
組合 (composition)
它們的強弱關係是沒有異議的:依賴 < 關聯 < 聚合 < 組合
然而它們四個之間的差別卻又不那麼好拿捏,需要好好體會。
依賴:
關聯:
聚合:
組合:
IPFS防騙你必須知道的知識
大家可以看到第一年礦工每天平均釋放41.8471萬枚。目前測試網是上個月19號開始跑的,之前有人統計過該階段前8名各節點的礦機數量6662 是按照單機只能封裝乙個為例算的,不包括現在的並行 當時前8的礦機量預估 通過這個表 一下現在整個測試網接入的礦機,1萬 1.5萬台,主網上線翻4 5倍是很正常的...
知識 儀表人必須知道的 誤差
一 測量誤差的概念 化工生產過程大多具有規模大 流程長 連續化 自動化的特點,為了有效地進行工藝操作和生產控制,需要用各種型別的儀表去測量生產過程中各種變數的具體量值。雖然進行測量時所用的儀表和測量方法不同,但測量過程的機理是相同的,即都是將被測變數與其同種類單位的量值進行比較的過程。各種測量儀表就...
學習HTML之前你必須知道的知識
title head body html 1234567html骨架標籤總結 標籤名定義說明 html標籤 頁面中最大的標籤,我們成為 根標籤 文件的頭部 注意在head標籤中我們必須要設定的標籤是title 文件的標題 讓頁面擁有乙個屬於自己的網頁標題 文件的主體 元素包含文件的所有內容,頁面內容...