重溫一下類的關係並詳細解釋易混淆的部分

2021-06-21 01:50:30 字數 3095 閱讀 3481

一、簡介
二、五種關係

1、依賴(dependency)

2、關聯 (association)

2.1、單向

2.2、雙向

2.3、自身

2.4、多維(n-ary association )

3、聚合(aggregation)

4、組合(composite)

5、泛化(generalization)

三、 總結

簡介

本文旨在在這裡與各位重溫一下架構工作中的乙個重點,框架**類檢視的編制工作。通過編制、修改並儲存類的檢視,來確保中大型系統的**維護工作得以

持續進行。

五種關係

1、依賴(dependency)

某個類的方法依賴於另外的類,這是乙個use 關係,兩者聯絡比較弱,兩者間的uml影象體現為 虛線 +箭頭

}這裡human類的攻擊造成一定數值的傷害,數值取決於**型別。這裡人只是用一下**,而**不是人的所有物,是很符合**的規範的。

2.關聯(association)

2.1 單向關聯

某個類知道另乙個類,這是乙個 has ... ... 的關係,由於從定義上來講聚合及組合也是關聯的一部分,

所以 關聯(association)關係的乙個基本解釋就是知道.

或者更形象滴說是記得,uml圖形上表現為直線+箭頭,如圖(圖中的human 和book就是關聯關係)。

};//此**有記憶體洩露之虞,僅供學習設計模式

2.2 雙向關聯

雙向關聯表示兩個互相知道,和單向關聯的主要區別是只有實線沒有箭頭

2.3 自身關聯

節點類往往是一種自身關聯的類,主要特點是乙個指向自己的單實線加箭頭。

2.4 多維關聯

多維關聯也是一種常見的關聯模式,如下圖

主人與寵物狗一起玩扔飛盤的遊戲,會形成乙個多維的關聯關係。

3 聚合(aggregation)

聚合是一種特殊的關聯。聚合是一種強的關聯關係,表示乙個類的物件是另乙個類的一部分(成員),同時其擁有關係相對的弱化了,因為聚合帶有被包含的類是可以共享,且兩個類的物件生命週期有一定的關聯卻並不完全同步。還是用剛才那本書的示例來演示。

注意圖中紅色的菱形,聚合關係uml圖形就是菱形+直線+箭頭(紅色只是突出一下)

4 組合(composite)

組合仍舊是關聯關係的一種特殊形式。表示某個類是另乙個類的一部分。其影象是乙個實心的菱形加上直線加上箭頭 。

如上圖這個是書和書頁的組合關係。書頁離開了書是沒有意義的(在某種業務描述下當然也是可以分開的,所以uml關係必須結合業務及系統整體情況來看)

5 泛化(generalization)

指的是類的繼承或者類對介面的實現。某些資料裡將這兩種情況分開討論,實際是沒有意義的,在uml這種重在梳理整體結構關係的體系裡並不會,也不需要體現出**細節或者程式對暫存器之類的底層呼叫上的區別。泛化的標誌是乙個傘形圖示,傘柄有點超比例的長。

如上圖,跑車當然是汽車的子類了。或者說汽車是一種inte***ce,而跑車是繼承該介面的類。

三、總結

五種關係中,泛化在**實現上與其它四種區別明顯,相信各位不太會搞錯。那麼其它這四種關係,依據關聯的緊密度來看 依賴(dependency) < 關聯(association)

< 聚合(aggregation) < 組合 (composite) 

從實現上看,依賴只是兩個類之間存在方法的呼叫,並不存在乙個持續的記憶體影響。 非聚合/組合 的關聯類,通常保持者被關聯類的記憶體指標,但通常來說雙方不包含

記憶體塊上的重疊(否則釋放乙個,另乙個也就被釋放了)。  聚合與組合在**上已經很難一眼看出了,兩者的被關聯類都是直接在關聯類內的成員,如果設計師的圖紙掉了,而**有時候寫的又不是很嚴謹的話,情況就悲劇了,你得看遍所有的**來確定,被關聯的(聚合與組合都是關聯的一種特殊形式,對吧?)類從來就沒有單獨例項化使用過,才能確定他是組合,反之即時聚合。現在大家對uml中類的五種關係清楚了吧?

通俗的解釋一下正規化

正規化是什麼呢?比如拷貝來一段瞅瞅 正規化是符合某一種級別的關係模式的集合。關聯式資料庫中的關係必須滿足一定的要求,滿足不同程度要求的為不同正規化。我知道不用說,你肯定一臉懵逼!因為我也是!下面我就通俗的來解釋一下三大正規化吧,不喜勿噴,個人理解 第一正規化 其實就是讓列保持原子性,原子性就是不能再...

解釋一下尾遞迴的含義

usr bin python3 def fact n return fact iter n,1 def fact iter num,product if num 1 return product return fact iter num 1,num product print fact 4 定義函式...

解釋一下檔案 etc fstab的內容

etc fstab 內容解釋 偷個懶,把別人的話拷貝過來,做個標記,然後下班走人.dev hda1 mnt c ntfs ro,users,gid users,umask 0002,nls utf8 0 0 dev hda9 mnt d ntfs 3g silent,umask 0,locale z...