天天看點

UML模組化

<code>UML</code>是<code>Unified Model Language</code>的縮寫,中文是<code>統一模組化語言</code>,是由一整套圖表組成的标準化模組化語言。

UML提供了極富表達能力的模組化語言,可以讓軟體開發過程中的不同人員分别得到自己感興趣的資訊。

<code>Page-Jones</code> 在《Fundamental Object-Oriented Design in UML》 一書中總結了UML的主要目的,如下:

為使用者提供現成的、有表現力的可視化模組化語言,以便他們開發和交換有意義的模型。

為核心概念提供可擴充性 (Extensibility) 和特殊化 (Specialization) 機制。

獨立于特定的程式設計語言和開發過程。

為了解模組化語言提供一個正式的基礎。

鼓勵面向對象工具市場的發展。

支援更高層次的開發概念,如協作,架構,模式群組件。

整合最佳的工作方法 (Best Practices)。

用例圖(use case)

靜态結構圖:類圖、對象圖、包圖、元件圖、部署圖

動态行為圖:互動圖(時序圖與協作圖)、狀态圖、活動圖

類之間的關系:依賴、泛化(繼承)、實作、關聯、聚合與組合

UML中,可見性分為4級

public 公用的 :用+ 字首表示 ,該屬性對所有類可見

protected 受保護的:用 # 字首表示,對該類的子孫可見

private 私有的:用 - 字首表示,隻對該類本身可見

package 包的:用 ~ 字首表示,隻對同一包聲明的其他類可見

UML模組化

類中用到了對方

如果是類的成員屬性

如果是方法的傳回類型

是方法接收的參數類型

方法中使用到

泛化關系實際上就是繼承關系,他是依賴關系的特例。

UML模組化

泛化關系實際上就是繼承關系

如果 A 類繼承了 B 類,我們就說 A 和 B 存在泛化關系

UML模組化

實作關系實際上就是 A 類實作 B 接口,他是依賴關系的特例

關聯(Association)關系是對象之間的一種引用關系,用于表示一類對象與另一類對象之間的聯系。

關聯具有導向性:即單向關系或者雙向關系。

UML模組化

聚合關系(Aggregation)表示的是整體和部分的關系,整體與部分可以分開。聚合關系是關聯關系的特例,是以他具有關聯的導航性與多重性。

聚合的符号:空心菱形

如:一台電腦由鍵盤(keyboard)、顯示器(monitor),滑鼠等組成;組成電腦的各個配件是可以從電腦上分離出來的,使用帶空心菱形的實線來表示:

UML模組化

組合關系:也是整體與部分的關系,但是整體與部分不可以分開。

再看一個案例:在程式中我們定義實體:Person 與 IDCard、Head, 那麼 Head 和 Person 就是 組合,IDCard 和

Person 就是聚合。

但是如果在程式中 Person 實體中定義了對 IDCard 進行級聯删除,即删除 Person 時連同 IDCard 一起删除,那麼 IDCard 和 Person 就是組合了

UML模組化

聚合與組合的差別:

組合:整體類端的重數必須是1,部分類的重數是任意的。

聚合:整體類端的重數可以大于1,部分類的重數是任意的。

UML模組化
上一篇: 逃離百度
下一篇: 百度黑洞

繼續閱讀