UML中類之間的關係
依賴是指一個類使用了另一個類,它是一種使用關係,描述了一個事物的規格說明的變化可能會影響到使用它的另一個事物(反之不一定)。最常見的依賴關係是一個類內部中使用到了另一個類的定義。在UML中表示為一條指向被依賴事物的虛線。
依賴可以採取多種方式來實現,如以下程式碼
Code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->internal class DependReturnType
{
}
internal class DependParameter
{
}
internal class DependVarible
{
}
class Depend
{
public DependReturnType Test(DependParameter param)
{
DependVarible var = new DependVarible();
return new DependReturnType();
}
}
當類之間在概念上有連線關係時,類之間的連線稱之為關聯,關聯是一種結構關係,說明一個事物的物件與另一個事物的物件相聯絡。給定一個連線兩各類的關聯,可以從一個類的物件導航到另一個類的物件。
一般把關聯畫為連線相同或者不同的類一條實線。關聯可以有方向,即導航。一般不作說明的時候,導航是雙向的,不需要線上上標出箭頭。大部分情況下導航是單向的,可以加一個箭頭表示。
關聯一般採取全域性變數的方式來實現,如以下程式碼
Code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->internal class Employee
{
public void DoWork()
{
}
}
class Association
{
private Employee myEmployee;
public Employee MyEmployee
{
get
{
return myEmployee;
}
set
{
myEmployee = value;
}
}
public void DoSomething()
{
myEmployee.DoWork();
}
}
依賴和關聯都是一個類中使用了另一個類,那它們有什麼區別呢?
依賴和關聯都是兩個或多個相對獨立的類之間的關係。當一個物件負責構造另一個物件的例項,或者依賴另一個物件的服務時,這兩個物件之間主要體現為依賴關係;當一個物件的例項與另一個物件的一些特定例項存在固定的對應關係時,這兩個物件之間為關聯關係。依賴關係表現在區域性變數,方法的引數,以及對靜態方法的呼叫;關聯關係是使用例項變數來實現。
泛化就是物件導向中的繼承。它表示類與類之間的繼承關係,介面與介面之間的繼承關係,或類對介面的實現關係。一般化的關係是從子類指向父類的,與繼承或實現的方法相反。
程式碼如下
Code
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->internal class Father
{
}
internal class Child : Father
{
}
class Generalization
{
public void Test()
{
Father father = new Child();
}
}
當物件A被加入到物件B中,成為物件B的組成部分時,物件B和物件A之間為聚合關係。聚合是關聯關係的一種,是較強的關聯關係,強調的是整體與部分之間的關係。
與關聯關係一樣,聚合關係也是通過例項變數來實現這樣關係的。關聯關係和聚合關係來語法上是沒辦法區分的,從語義上才能更好的區分兩者的區別。
聚合用帶一個空心菱形(整體的一端)的實線表示。
聚合與關聯的區別:關聯關係所涉及的兩個物件是處在同一個層次上的。比如人和自行車就是一種關聯關係,而不是聚合關係,因為人不是由自行車組成的。
組合是一種特殊的聚合關係,它是一種強型別的聚合,組合中的部分不能脫離整體而獨立存在。例如Windows的視窗和視窗上的選單就是組合關係。組合中的整體和部分的生命週期一致,即部分必須在組合建立的同時或者之後建立,在組合銷燬之前或者同時銷燬,部分的生命週期不會超出組合的生命週期。
組合是用帶實心菱形(整體的一端)的實線來表示。
組合與聚合的區別:
- 生命週期的實現上,組成需要負責其部分的建立和銷燬,聚合不需要
- 組合中的一個物件在同一時刻只能屬於一個組成物件,而聚合的一個部分物件可以被多個整體物件聚合,例如一個學生可以在多個學校就讀,而一個選單在同一時刻只能是某個視窗內的物件。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-441857/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大話UML中類之間的關係
- UML類圖--類之間的關係
- QT中類之間的關係圖QT
- UML類圖關係
- 類之間的關係
- 淺談UML中類之間的五種關係及其在程式碼中的表現形式
- UML 類圖及關係
- 【java】類之間的關係Java
- 類與類之間的基本關係
- UML類圖與類的關係詳解
- 再次說UML 中的關係
- 介面、抽象類、普通類之間的關係抽象
- UML 之 各種檢視簡介 & UML類圖幾種關係的總結
- UML類圖幾種關係的總結
- UML類圖介紹&類的六大關係
- Java中Class類與Object類之間有什麼關係?JavaObject
- Java設計模式-類之間的關係Java設計模式
- 類之間的6種關係詳解
- 【UML入門教程】——UML關係
- 五分鐘看懂UML類圖與類的關係詳解
- FAILGROUP和REDUNDANCY之間的關係關係!AI
- CSS系列:CSS中盒子之間的關係CSS
- 專案管理中各系統之間的關係專案管理
- Guru of the Week 條款14:類之間的關係(上篇) (轉)
- Guru of the Week 條款15:類之間的關係(下篇) (轉)
- 頁面中多個script塊之間的關係
- Android 中Activity,Window和View之間的關係AndroidView
- unix中lun、pv、vg、lv等之間的關係
- Window、WindowManager、View 之間的關係View
- ODS與DW之間的關係
- tablespace和datafile之間的關係
- 不同層之間的物件關係物件
- 設計模式中類的關係設計模式
- PHP中類的繼承關係PHP繼承
- Python中怎樣改變集合之間的關係?Python
- TLS與SSL之間關係TLS
- ps 與 svmon之間關係
- java的類之間的關係:泛化、依賴、關聯、實現、聚合、組合Java