關係 (relationship)是事物之間的聯絡。
在物件導向的建模中,最重要的 3 中關係是 依賴、泛化和關聯。
在圖形上,把關係圖畫成一條線,並用不同的線區別關係的種類。
5.2.1 依賴(dependency)是一種使用關係,說明乙個事物(如類 window)使用另乙個事物(如類event)的資訊和服務,但反之未必。
在圖形上,把依賴畫成一條有向的虛線,指向被依賴的事物。
當要指明乙個事物使用另乙個事物時,就選用依賴。
在大多數情況下,在類與類之間用依賴指明乙個類使用另乙個類的操作,或者它使用其他類所定義的變數和產量。這的確是一種使用關係,如果被使用的類發生變化,那麼另乙個類的操作也會受到影響,因為這個被使用的類此時可能表現出不同的介面或行為。
在 uml 中,也可以在很多其他的事物之間建立依賴,特別是註解和包。
5.2.2 泛化
泛化(generalization)是一般事物(稱為超類或父類)和該事物的較為特殊的種類(稱為子類或子)之間的關係。
有時也稱泛化為「is-a-kind-of」關係:
乙個事物(如類baywindow)是更一般的事物(如類 window)的「乙個種類」。
換句話說,泛化意味著子類可以替換父類的宣告。子類繼承父類的特性,特別是父類的屬性和操作。
若子類的乙個操作的實現覆蓋了父類的同樣乙個操作的實現,則這種情況稱為多型性。其共同之處是,兩個操作必須具有相同的特徵和標記(相同的名字和引數)。
在圖形上,把泛化畫成一條帶有空心的三角形大箭頭的有向實線,指向父類。
乙個雷可以有 0 個、1 個或多個父類。
沒有父類並且最少有乙個子類的類稱為根類或基類;沒有子類的類稱為葉子類。
如果乙個類只有乙個父類,說明它使用了單繼承;如果乙個雷有多個父類,則說明它使用了多繼承。
在大多數情況下,永磊或介面之間的泛化來表明繼承關係。
在 uml 中,也可以在其他的類目之間建立泛化,比如及節點之間。
5.2.3 關聯
關聯(association) 是一種結構關係,它指明乙個事物的物件與另乙個事物的物件間的聯絡。
給定乙個連線兩個類的關聯,可以從乙個類的物件聯絡到另乙個類的物件。
關聯的兩端都連到同乙個類是完全合法的。這意味著,從類的給定物件能連線到該類的其他物件。恰好連線兩個類的關聯叫作二元關聯。儘管不太常見,但可以有連線多於兩個類的關聯,這種關聯叫作 n 元關聯。
在圖形上,把關聯畫成一條連線相同類或不同類的實踐。當要表示結構關係是,就使用關聯。
除了這種基本形式外,還有 4 種應用於關聯的修飾。
1、名稱
關聯可以有乙個名稱,用於描述該關係的性質。
為了消除名稱的歧義,可以提供乙個指出讀名稱方向的三角形,給名稱乙個方向,如:
2、角色
當乙個類參與了乙個關聯時,它就在這個關係中扮演了乙個特定的角色。
角色是關聯中靠近它的另一端的類對另一端的呈現的面孔。
可以顯式地命名乙個類在關聯中所扮演的角色。
把關聯端點扮演的角色成為端點名。
如下圖,扮演 employee 角色的類 person 與扮演 employer 角色的類 company 相關聯。
3、多重性
關聯表示了物件間的結構關係。
在很多建模問題中,說明乙個關聯的例項中有多個相互連線的物件是很重要的。這個「多少」被稱為關聯角色的多重性,它表示乙個整數的範圍,指明一組相關物件的可能個數。
4、聚合
兩個類之間的簡單關聯表示了兩個同等地位類之間的結構關係,這意味著這兩個類在概念上是同級別的,乙個類並不比另乙個類更重要。
優勢要對「整體/部分」關係建模,其中乙個類描述了乙個較大的事物(「整體」),它由較小的事物(「部分」)組成。
這種關係成為聚合,它描述了「 has - a」關係,意思是整體物件擁有部分物件。其實聚合只有一種特殊的關聯,它被表示為在整體的一端用乙個空心菱形「 ◇ 」 修飾的簡單關聯。
5.2.4 其他特徵
簡單而未加修飾的依賴、泛化以及帶有名稱、多重性和角色的關聯是建立抽象時所需要的最常見的特徵。
事實上,對於所建的大多數模型,這3中關係的基本形式足以表達關係的重要的語義。
然而,有時需要視覺化或詳述其他特徵,如組合聚合、導航、判別式、關聯類、特殊種類的依賴和泛化。
Bazel 概念和術語
目錄簡介 workspace,packages and targets 工作空間 workspace 倉庫 repositories 包 packages 目標 targets 標籤 labels 標籤的詞彙規範 lexical specification of a label rules buil...
儲存常見術語和概念
1 條帶化 striping 把資料分片,儲存在多個磁碟以提高資料並行訪問速率,從而提公升i o效能 影響條帶化效能有兩個關鍵指標,條帶大小和條帶寬度,條帶大小 striping size 即分片的資料塊大小,資料塊分得越多,就可以並行儲存到更多的磁碟,傳輸效能更高,自然要求控制器有更強的資料塊分片...
基本概念和術語
資料型別和抽象資料型別 本篇文章將講解資料結構的基本概念和術語,這種概念性的東西往往是催人入睡的,當然了,沒有誰能把概念講出花來,概念就是枯燥的。由於專欄的體系,我有必要講一講關於資料結構的基本概念和術語。資料是指能輸入計算機且能被計算機處理的各種符號的集合。資料是資訊的載體,是對客觀事物符號化的表...