UML類圖與物件圖
UML類圖與物件圖
基本概述
類圖(Class Diagram)應該是使用的最多的一種UML圖。其語法並不複雜,可能只需要幾天時間就能掌握,但是其背後的面向物件(OO)思想卻是需要日積月累才能深刻理解。
面向物件的四種常見思想
1、OOA(Object-Oriented Analysis 面向物件分析)
2、OOD(Object-Oriented Design 面向物件設計)
3、OOP(Object-Oriented Programming 面向物件程式設計)
4、OOT(Object-Oriented Technology 面向物件技術)
PS:無論是開發人員還是分析人員,這幾種思想是必須要掌握的,作為開發人員來說,
類的概念
類可以視作一現實事物抽象出的統一的、相似的模型。
物件的概念
物件可以看做是類的具體化,就像模具匯出的產品一樣。
類圖
類圖就是描述類與類之間關係的圖。
案例:
類圖的建模步驟
1、識別出類。
2、識別出類的主要屬性。
3、畫出類之間的關係。
4、對各類進行分析、抽象、整理。
關聯關係
兩個類之間有關係,但又不確定是什麼關係,可以用關聯關係表達。
PS:關聯關係如果出現數量上的對應可以寫上數字表示數量,可以用角色關係表示兩類分別處於什麼角色,單向關聯關係表示關聯是單向的,只能由關聯方找到被關聯方。在寫程式碼時,可以將其視作關聯類包含了被關聯類的一個引用。
包含關係
包含關係表示一個類包含另一個類。
PS:包含關係分為兩種,一種是弱包含關係,叫做聚合,為空心菱形,一種是強包含關係,叫做組合,為實心菱形。一開始可以將所有包含關係視作弱包含,當發現某些關係可以用強包含表示時,才轉為強包含關係。
泛化關係
當一個類是另一個類的子類時,可以使用泛化關係。
PS:泛化關係通常也被稱作繼承關係,根據類的發現先後關係,如果是由父類匯出子類,這樣就可以說子類繼承父類,如果是由子類匯出父類,這樣就可以說父類泛化子類。
實現關係
當一個類可以實現某個抽象類時,可以使用實現關係。
PS:標識介面與類之間的關係用的比較多。
依賴關係
當一個類需要另一個類協助時,可以用依賴關係表示。
遞迴關係
當某類使用或者包含自己時,可以使用遞迴關係。
三角關係
當發現兩個類之間的關係不能用一般關係來表示,這時候可以用關聯類來表示關係,這也就是三角關係。
PS:可以通過思考屬性是否恰當來識別出關聯類關係,列出兩類的關鍵屬性之後,思考這些屬性的屬性值是不是由該類本身就可以確定,如果不能兩類之間就可能有關聯類關係。
小結
物件圖
如果說類圖代表了一類事物,那麼物件圖就代表著某個具體的事物。