<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    轉(zhuǎn):UML中幾種類間關(guān)系:繼承、實現(xiàn)、依賴、關(guān)聯(lián)、聚合、組合的聯(lián)系與區(qū)別

    這篇文章轉(zhuǎn)自:http://blog.csdn.net/sfdev/article/details/3906243

    這篇文章清晰的講述了繼承, 實現(xiàn), 依賴, 關(guān)聯(lián),組合的概念及他們之間的關(guān)系,以下是原文內(nèi)容:

    這是一堂關(guān)于UML基礎(chǔ)知識的補(bǔ)習(xí)課;現(xiàn)在我們做項目時間都太緊了,基本上都沒有做過真正的class級別的詳細(xì)設(shè)計,更別提使用UML來實現(xiàn)規(guī)范建模了;本篇主要就以前自己一直感覺很迷糊的幾種class之間的關(guān)系進(jìn)行整理,讓我們在真正用UML進(jìn)行比如類圖設(shè)計時能夠更加清晰明了;以下就分別介紹這幾種關(guān)系:

     

    繼承

    指的是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,并可以增加它自己的新功能的能力,繼承是類與類或者接口與接口之間最常見的關(guān)系;在Java中此類關(guān)系通過關(guān)鍵字extends明確標(biāo)識,在設(shè)計時一般沒有爭議性;

    實現(xiàn)

    指的是一個class類實現(xiàn)interface接口(可以是多個)的功能;實現(xiàn)是類與接口之間最常見的關(guān)系;在Java中此類關(guān)系通過關(guān)鍵字implements明確標(biāo)識,在設(shè)計時一般沒有爭議性;

    依賴

    可以簡單的理解,就是一個類A使用到了另一個類B,而這種使用關(guān)系是具有偶然性的、、臨時性的、非常弱的,但是B類的變化會影響到A;比如某人要過河,需要借用一條船,此時人與船之間的關(guān)系就是依賴;表現(xiàn)在代碼層面,為類B作為參數(shù)被類A在某個method方法中使用;

    關(guān)聯(lián)

    他體現(xiàn)的是兩個類、或者類與接口之間語義級別的一種強(qiáng)依賴關(guān)系,比如我和我的朋友;這種關(guān)系比依賴更強(qiáng)、不存在依賴關(guān)系的偶然性、關(guān)系也不是臨時性的,一般是長期性的,而且雙方的關(guān)系一般是平等的、關(guān)聯(lián)可以是單向、雙向的;表現(xiàn)在代碼層面,為被關(guān)聯(lián)類B以類屬性的形式出現(xiàn)在關(guān)聯(lián)類A中,也可能是關(guān)聯(lián)類A引用了一個類型為被關(guān)聯(lián)類B的全局變量;

    聚合

    聚合是關(guān)聯(lián)關(guān)系的一種特例,他體現(xiàn)的是整體與部分、擁有的關(guān)系,即has-a的關(guān)系,此時整體與部分之間是可分離的,他們可以具有各自的生命周期,部分可以屬于多個整體對象,也可以為多個整體對象共享;比如計算機(jī)與CPU、公司與員工的關(guān)系等;表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語義級別來區(qū)分;

    組合

    組合也是關(guān)聯(lián)關(guān)系的一種特例,他體現(xiàn)的是一種contains-a的關(guān)系,這種關(guān)系比聚合更強(qiáng),也稱為強(qiáng)聚合;他同樣體現(xiàn)整體與部分間的關(guān)系,但此時整體與部分是不可分的,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束;比如你和你的大腦;表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語義級別來區(qū)分;

    對于繼承、實現(xiàn)這兩種關(guān)系沒多少疑問,他們體現(xiàn)的是一種類與類、或者類與接口間的縱向關(guān)系;其他的四者關(guān)系則體現(xiàn)的是類與類、或者類與接口間的引用、橫向關(guān)系,是比較難區(qū)分的,有很多事物間的關(guān)系要想準(zhǔn)確定位是很難的,前面也提到,這幾種關(guān)系都是語義級別的,所以從代碼層面并不能完全區(qū)分各種關(guān)系;但總的來說,后幾種關(guān)系所表現(xiàn)的強(qiáng)弱程度依次為:組合>聚合>關(guān)聯(lián)>依賴;



    Kyle Wang

    posted on 2013-05-25 16:12 王樹東 閱讀(259) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2013年5月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    導(dǎo)航

    統(tǒng)計

    公告

    常用鏈接

    留言簿

    隨筆分類(17)

    隨筆檔案(15)

    文章分類(4)

    文章檔案(5)

    收藏夾(4)

    Algorithm

    Design

    Environment Setup

    Installer

    Maven

    MINA

    OS

    Skills for Java

    VIM

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲高清一区二区三区| 亚洲人成影院在线无码观看| 亚洲Aⅴ无码专区在线观看q| 成人在线免费视频| 亚洲精品天堂成人片?V在线播放| 美女视频黄a视频全免费网站一区| 亚洲w码欧洲s码免费| 精品久久久久亚洲| 亚洲精品国产免费| 国产gv天堂亚洲国产gv刚刚碰| 91亚洲精品自在在线观看| 色老头永久免费网站| 亚洲国产精品久久网午夜| 国产又黄又爽又猛免费app| 亚洲日本乱码在线观看| 日韩成人精品日本亚洲| www.亚洲色图| 精品国产污污免费网站| 免费h黄肉动漫在线观看| 美女视频黄频a免费观看| 国产自偷亚洲精品页65页| 久久99热精品免费观看牛牛| 亚洲日本国产精华液| 超pen个人视频国产免费观看| 美女黄色免费网站| 亚洲av不卡一区二区三区| 欧洲黑大粗无码免费| 久久丫精品国产亚洲av| 中字幕视频在线永久在线观看免费| 国产亚洲精品成人AA片| 亚洲精品无码成人片在线观看| 国产免费播放一区二区| 亚洲色欲www综合网| 国产精品国产免费无码专区不卡 | 亚洲?v女人的天堂在线观看| 色播在线永久免费视频网站| 亚洲avav天堂av在线网爱情| 免费一看一级毛片全播放| 57pao一国产成视频永久免费| 亚洲AV第一成肉网| 亚洲综合一区二区精品导航|