1. 程式人生 > >UML類圖與物件圖

UML類圖與物件圖

UML類圖與物件圖

基本概述

    類圖(Class Diagram)應該是使用的最多的一種UML圖。其語法並不複雜,可能只需要幾天時間就能掌握,但是其背後的面向物件(OO)思想卻是需要日積月累才能深刻理解。

面向物件的四種常見思想

1OOA(Object-Oriented Analysis 面向物件分析)

2OOD(Object-Oriented Design 面向物件設計)

3OOP(Object-Oriented Programming 面向物件程式設計)

4OOT(Object-Oriented Technology 面向物件技術)

PS:無論是開發人員還是分析人員,這幾種思想是必須要掌握的,作為開發人員來說,

OO的思想,其深度和延伸內容可謂博大精深,值得花時間去學習。

類的概念

    類可以視作一現實事物抽象出的統一的、相似的模型。

物件的概念

    物件可以看做是類的具體化,就像模具匯出的產品一樣。

類圖

    類圖就是描述類與類之間關係的圖。

案例:


類圖的建模步驟

1、識別出類。

2、識別出類的主要屬性。

3、畫出類之間的關係。

4、對各類進行分析、抽象、整理。


關聯關係

    兩個類之間有關係,但又不確定是什麼關係,可以用關聯關係表達。



PS:關聯關係如果出現數量上的對應可以寫上數字表示數量,可以用角色關係表示兩類分別處於什麼角色,單向關聯關係表示關聯是單向的,只能由關聯方找到被關聯方。在寫程式碼時,可以將其視作關聯類包含了被關聯類的一個引用。


包含關係

    包含關係表示一個類包含另一個類。


PS:包含關係分為兩種,一種是弱包含關係,叫做聚合,為空心菱形,一種是強包含關係,叫做組合,為實心菱形。一開始可以將所有包含關係視作弱包含,當發現某些關係可以用強包含表示時,才轉為強包含關係。


泛化關係

    當一個類是另一個類的子類時,可以使用泛化關係。


PS:泛化關係通常也被稱作繼承關係,根據類的發現先後關係,如果是由父類匯出子類,這樣就可以說子類繼承父類,如果是由子類匯出父類,這樣就可以說父類泛化子類。

實現關係

    當一個類可以實現某個抽象類時,可以使用實現關係。


PS:標識介面與類之間的關係用的比較多。

依賴關係

    當一個類需要另一個類協助時,可以用依賴關係表示。


遞迴關係

    當某類使用或者包含自己時,可以使用遞迴關係。


三角關係

    當發現兩個類之間的關係不能用一般關係來表示,這時候可以用關聯類來表示關係,這也就是三角關係。


PS:可以通過思考屬性是否恰當來識別出關聯類關係,列出兩類的關鍵屬性之後,思考這些屬性的屬性值是不是由該類本身就可以確定,如果不能兩類之間就可能有關聯類關係。

小結


物件圖

    如果說類圖代表了一類事物,那麼物件圖就代表著某個具體的事物。