Lld - 類別圖

·

1 min read

類別圖(Class Diagram)是軟體工程中用來描述系統的靜態結構的一種圖形化表示方法。它是統一建模語言(UML, Unified Modeling Language)的一部分,主要用於展示系統中的類別及其之間的關係。

類別圖內的元素

  • 類別(Class):表示系統中的實體或對象。每個類別通常包含屬性(Attributes)和方法(Methods)

  • 屬性(Attributes):描述類別的特性或數據成員

  • 方法(Methods):描述類別的行為或操作

  • 關係(Relationships):描述類別之間的聯繫。常見的關係包括:

    • 繼承(Inheritance):一個類別從另一個類別繼承屬性和方法

    • 聯合(Association):表示類別之間的靜態關係

    • 聚合(Aggregation):一種特殊的聯合,表示整體和部分之間的關係

    • 組合(Composition):一種強聚合,表示整體和部分之間的強依賴關係

    • 依賴(Dependency):一個類別依賴於另一個類別的變化

使用類別圖的注意事項

  • 保持圖表的簡潔和清晰: 避免在一個圖中包含過多的類別和關係。

  • 使用一致的命名規範: 讓類別、屬性和方法的名稱清晰易懂。

  • 根據需求選擇合適的關係: 正確使用各種關係可以準確地表達類別之間的互動。

  • 不斷迭代和更新: 類別圖應該隨著系統的開發而不斷更新。

類別圖實踐

  1. 從「人事時地物數」中尋找物件:

    在分析系統需求時,可以從以下幾個方面著手,尋找潛在的類別:

    • 人 (Person): 參與系統互動的角色,例如:顧客、員工、管理員。

    • 事 (Event): 系統中發生的事件或交易,例如:訂單、預約、付款。

    • 時 (Time): 與時間相關的概念,例如:日期、時間、時段。

    • 地 (Place): 與地點相關的概念,例如:地址、位置、地點。

    • 物 (Thing): 系統中處理的實體物件,例如:商品、書籍、房間。

    • 數 (Number/Concept): 抽象的概念或數值,例如:價格、數量、評分。

  2. 可以套用設計模式,但別因此受限:

    設計模式是解決常見設計問題的經驗總結,套用適當的設計模式可以提高設計的品質。

    • 然而,不應該為了套用模式而硬套,而是應該根據實際情況靈活運用

    • 過度或不恰當地使用設計模式反而會使設計變得複雜。

  3. 無須太早「分派責任」給物件:

    在繪製類別圖的初期,重點應該放在識別類別、建立類別之間的關係。定義物件的操作 (方法) 可以延後到繪製循序圖或活動圖時再進行,這樣可以更清楚地了解物件之間的互動,並更合理地分配責任。

  4. 善用使用案例敘述和循序圖來定義並檢驗物件的操作:

    使用案例描述了使用者如何與系統互動,而循序圖則展示了物件之間的訊息傳遞。透過分析使用案例和循序圖,可以更有效地定義物件需要提供的操作,並檢驗這些操作是否合理、完整。

  5. 分析階段採用預設的能見度:

    在分析階段,可以先使用預設的能見度:屬性預設為私有 (private),操作預設為公開 (public)。在設計階段再仔細考慮每個屬性和操作的能見度,以確保系統的安全性。

  6. 避免過度使用繼承:

    繼承是強大的工具,但過度使用會導致類別層次過於複雜,難以理解和維護。應該謹慎使用繼承,並優先考慮使用介面或組合來達到程式碼重用的目的。

  7. 保持類別圖的簡潔和清晰:

    類別圖的目的是為了溝通和理解,因此應該盡量保持簡潔和清晰。避免在一個圖中包含過多的類別和關係,可以將複雜的系統分解成多個較小的圖表。

  8. 避免循環依賴:

    循環依賴是指兩個或多個類別之間互相依賴,這會導致系統的耦合性過高,難以修改和維護。應該盡量避免循環依賴的產生。