日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(转,改)UML中的几种关系

發布時間:2025/3/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转,改)UML中的几种关系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

UML中定義的關系主要有6種: 依賴、關聯、聚合、組合/合成、泛化、實現;
1、依賴關系:
?? 含義:是類與類之間的連接,表示一個類依賴于另外一個類的定義;依賴關系僅僅描述了類與類之間的一種使用與被使用的關系;
?? 體現:在Java和C++中體現為局部變量、方法/函數的參數或者是對靜態方法的調用;
?? 方向:單向;
?? 圖示:虛線 + 箭頭;
?? 舉例:人依賴于水和空氣;汽車依賴汽油

?

2、關聯關系:
?? 含義:類與類之間的連結,關聯關系使一個類知道另外一個類的屬性和方法;通常含有“知道”,“了解”的含義
?? 體現:在Java和C++中,關聯關系是通過成員變量來實現的;
?? 方向:雙向或單向;
?? 圖示:實線 + 箭頭;箭頭指向被關聯的類;
?? 舉例:“漁民”需要知道“天氣”情況才能夠出海


?

3、聚合關系:
?? 含義:是關聯關系的一種,是一種強關聯關系;聚合關系是整體和個體/部分之間的關系;關聯關系的兩個類處于同一個層次上,而聚合關系的兩個類處于不同的層次上,一個是整體,一個是個體/部分;在聚合關系中,代表個體/部分的對象有可能會被多個代表整體的對象所共享;
?? 體現:C++中,聚合關系通過將被聚合者的(數組)指針作為內部成員來實現的;
?? 方向:單向;
?? 圖示:空心菱形 + 實線 + 箭頭;箭頭指向被聚合的類,也就是說,箭頭指向個體/部分;
?? 舉例:鴨群與鴨子具有聚合關系;汽車由引擎、輪胎以及其它零件組成,因為汽車壞掉了,沒有壞掉的引擎,輪胎和其他零件還可以繼續使用。

?

class?CYazi
{
???...
}

class?CYaQun
{
???
public:
???????CYaQun(CYaZi?
*?p){m_pYazi?=?p;?}
???
private:
???????CYaZi?
*?m_pYazi;
}

CYazi?
*?pYazi?=?new?CYazi?[10];
CYaQun?yaqun(pYazi);

?

?

?


4、合成/組合關系:
?? 含義:它也是關聯關系的一種,但它是比聚合關系更強的關系.合成/組合關系要求聚合關系中代表整體的對象要負責代表個體/部分的對象的整個生命周期;合成/組合關系不能共享;在合成/組合關系中,如果代表整體的對象被銷毀或破壞,那么代表個體/部分的對象也一定會被銷毀或破壞,而聚在合關系中,代表個體/部分的對象則有可能被多個代表整體的對象所共享,而不一定會隨著某個代表整體的對象被銷毀或破壞而被銷毀或破壞;
?? 體現:在Java和C++中,合成/組合關系是通過成員變量來實現的;
?? 方向:單向;
?? 圖示:實心菱形 + 實線 + 箭頭;箭頭指向代表個體/部分的對象,也就是被合成/組合的類的對象;
?? 舉例:一個人由頭、四肢、等各種器官組成,因為人與這些器官具有相同的生命周期,人死了,這些器官也掛了;

?

?

class?CHead
{
???...
}

class?CPerson
{
???
public:
???????CPerson(){m_head.MethodA();?}
???
private:
???????CHead?m_head;
}

CPerson?person;

?

?

?

5、泛化關系:
?? 含義:它表示一個更泛化的元素和一個更具體的元素之間的關系;也就是通常所說的類的繼承關系;
?? 體現:在Java和C++中,泛化關系通過類的繼承來實現的;
?? 方向:單向;子類繼承父類;
?? 圖示:空心箭頭 + 實線;箭頭指向父類;
?? 舉例:動物下面可以分為哺乳動物,脊椎動物,爬行動物等

?

6、實現關系:
?? 含義:它指定了兩個實體之間的一份合同;即:一個實體定義一份合同,另外一個實體則保證履行該合同;
?? 體現:在Java和C++中,實現關系通過類實現接口來實現的,即:一個類實現某個接口;
?? 方向:單向;子類實現接口;
?? 圖示:空心箭頭 + 虛線;箭頭指接口向接口;
?? 舉例:唐老鴨(對象)會說話(接口),因為一般鴨子不會說話,所以不會將說話這個方法給一般的鴨子帶上;超人(對象)會飛(接口)

?

注意:泛化關系和實現關系又統稱為一般關系;
總之,一般關系表現為繼承或實現(is a),關聯關系、聚合關系、合成/組合關系表現為成員變量(has a),依賴關系表現為函數中的參數(use a);

轉載于:https://www.cnblogs.com/aicro/archive/2010/08/23/1806584.html

總結

以上是生活随笔為你收集整理的(转,改)UML中的几种关系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。