1,依賴關係(dependency)
單向,表示乙個類依賴於另乙個類的定義,其中乙個類的變化將影響另外乙個類,是一種「use a」關係
如果a依賴於b,則b表現為a的區域性變數,方法引數,靜態方法呼叫等
publicclass
person
}
publicclass
person
}
public2,關聯關係(association)class
person
}
單向或雙向(通常我們需要避免使用雙向關聯關係),是一種"has a"關係,如果a單向關聯b,則可以說a has a b,通常表現為全域性變數
public3.聚合關係(aggregation)class
person
public
phone getphone()
}
單向,關聯關係的一種,與關聯關係之間的區別是語義上的,關聯的兩個物件通常是平等的,聚合則一般不平等,有一種整體和區域性的感覺,實現上區別不大
class由student組成,其生命週期不同,整體不存在了,部分依然存在,當前team解散了,人還在,還可以加入別的組。一般表現作為建構函式變數傳入,並賦值跟成員函式。
public4,組合關係(composition)class
team
}
單向,是一種強依賴的特殊聚合關係
head,body,arm和leg組合成people,其生命週期相同,如果整體不存在了,部分也將消亡。表現為在建構函式中例項化成員變數。
public5,繼承關係(inheritance)class
person
}
類實現介面,類繼承抽象類,類繼承父類都屬於這種關係
可以分得更細:
實現(realization):類實現介面屬於這種關係
泛化(generalization):即"is a"關係,類繼承抽象類,類繼承父類都屬於這種關係
依賴:「use a」,a不是成員變數,只能是區域性變數,方法引數,靜態方法呼叫。
關聯、聚合、組合:「has a」,a是成員變數。聚合和組合都是整體與部分的關係,關聯則不是。聚合是分開也能存活,組合是同生共死。
依賴:偷偷來乙個,用完銷毀(區域性變數)。
關聯:偷偷來乙個、偷偷new乙個,用完存起來一直擁有(成員變數)。
聚合:來乙個。一直擁有(成員變數)。
組合:new乙個。一直擁有(成員變數)。
UML 關聯 聚合 組合
聚合和組合都屬於關聯,處於聚合關係的兩個類生命週期不同步,則是聚合關係 處於組合關係的兩個類的生命週期同步。關聯可以有方向,可以是單向關聯,也可以是雙向關聯。關聯在c 中呈現為 class a class b a function1 b b 或a function1 b b 或a function1...
依賴 關聯 聚合 組合
依賴 關聯 聚合 組合 1 依賴 語義 a use b。依賴是區域性變數 形參 靜態方法 返回引數 生命週期中物件依賴關係 當f方法被呼叫時,a與b產生依賴關係,當呼叫結束,依賴關係結束 class a a 虛線箭頭指向 b 2 關聯 class soldier 語義 a has b 士兵可以有槍,...
UML依賴 泛化 關聯 聚合 組合 實現
結專案後再複習了一下依賴 泛化 關聯 聚合 組合 實現關係怎麼畫,箭頭的指向結合例項再次理解。1 依賴 虛線箭頭,有箭頭的那一項為被依賴關係 電視和遙控器為例,遙控器的開關變動使得電視機頻道發生了改變,乙個的改變引起另乙個的改變 2 關聯 實線箭頭,箭頭那端表示被引用的物件 3 泛化 空心三角 實線...