2011年11月6日 星期日

[UML] Relationship

[一般化關係] (Generalization)
  • 透過類別定義屬性和操作,所以日後針對同類別的一群物件,就可以使用相同的方式對待它們。
  • 不過有時候,這些物件並不是全然相同,可能大部分的屬性和操作相同,但是少部分的屬性和操作卻不同。在這種情況下,類別之間的一般化關係就派上用場了。
  • 在一般化的過程中,我們將特殊類別裡頭通用的屬性和操作記錄到一般類別裡,因此透過一般化關係,特殊類別可以繼承(Inheritance)一般類別裡的通用屬性與操作。
    • 由於特殊類別透過繼承,可以直接重用(Reuse)一般類別裡的屬性、操作和方法,節省開發成本。
    • 變動發生需要改版時,也只需要改版一般類別,節省維護成本。

[結合關係] (Association)
  • 類別之間最常見的關係。
  • 可以透過檢核下列兩項要件,判斷是否採用結合關係:
    • 在企業領域的專業概念裡,兩種物件之間有一種固定不變且需要保存的靜態關係。
    • 在資訊化時,系統會用到這些靜態關係,而且必須將它們存到資料庫

[聚合關係] (Aggregation)
  • 是一種特殊的結合關係。
  • 繼承了結合關係的特質,而且還獨有「整體-部分」(Whole-Part) 的特質。
  • 可以透過檢核下列三項要件,判斷是否採用聚合關係:
    • 在企業領域的專業概念裡,兩種物件之間有一種固定不變且需要保存的靜態關係。(繼承自結合關係的要件)
    • 在資訊化時,系統會用到這些靜態關係,而且必須將它們存到資料庫。(繼承自結合關係的要件)
    • 在企業領域的專業概念裡,兩種物件之間有Whole-Part的靜態關係。(聚合關係獨有的要件)

[組合關係] (Composition)
  • 是一種特殊的聚合關係。
  • 繼承了結合關係,以及聚合關係的「整體-部分」(Whole-Part) 的特質,還獨有全然擁有Part物件的特質。(Existence-Part)
  • 可以透過檢核下列四項要件,判斷是否採用組合關係:
    • 在企業領域的專業概念裡,兩種物件之間有一種固定不變且需要保存的靜態關係。(繼承自結合關係的要件)
    • 在資訊化時,系統會用到這些靜態關係,而且必須將它們存到資料庫。(繼承自結合關係的要件)
    • 在企業領域的專業概念裡,兩種物件之間有Whole-Part的靜態關係。(繼承自聚合關係的要件)
    • Part物件只能連結一個Whole物件,且Whole物件被註銷(Destroy)時,Part物件必須一塊被註銷。(組合關係獨有的要件)

Summary
Association -> Aggregation -> Composition


* Reference
- UML Blog: 1.4.6-一般化關係
- UML Blog: 1.4.7-結合關係
- UML Blog: 1.4.8-聚合關係
- UML Blog: 1.4.9-組合關係

沒有留言:

張貼留言