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

     

    繼承

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

    實現(xiàn)

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

    依賴

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

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

    他體現(xiàn)的是兩個類、或者類與接口之間語義級別的一種強依賴關(guān)系,比如我和我的朋友;這種關(guān)系比依賴更強、不存在依賴關(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)系,此時整體與部分之間是可分離的,他們可以具有各自的生命周期,部分可以屬于多個整體對象,也可以為多個整體對象共享;比如計算機與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)系比聚合更強,也稱為強聚合;他同樣體現(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)系要想準確定位是很難的,前面也提到,這幾種關(guān)系都是語義級別的,所以從代碼層面并不能完全區(qū)分各種關(guān)系;但總的來說,后幾種關(guān)系所表現(xiàn)的強弱程度依次為:組合>聚合>關(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

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 无码精品一区二区三区免费视频 | 亚洲精品动漫人成3d在线| 亚洲国产精品成人久久久| 99久久人妻精品免费二区| 亚洲国产精华液网站w| 中文字幕免费在线看电影大全| 久久久久一级精品亚洲国产成人综合AV区| 国产亚洲精品美女2020久久 | 2021在线观看视频精品免费| 久久亚洲AV成人无码国产| 5g影院5g天天爽永久免费影院| 亚洲网站免费观看| 一个人在线观看视频免费| 亚洲欧洲无卡二区视頻| 四虎影视永久免费视频观看| 人成免费在线视频| 国产亚洲婷婷香蕉久久精品| 99久热只有精品视频免费看| 亚洲自国产拍揄拍| 国产精品另类激情久久久免费| 老司机午夜性生免费福利| 亚洲理论电影在线观看| 亚洲无砖砖区免费| 亚洲日韩在线中文字幕综合| 亚洲人成无码网站久久99热国产| 99久久国产精品免费一区二区| 亚洲精品美女在线观看播放| 精品国产免费观看久久久| 2022国内精品免费福利视频| 亚洲高清美女一区二区三区| 国产成人免费a在线视频色戒| 成人毛片100免费观看| 亚洲男人的天堂久久精品| 亚洲成a人一区二区三区| 一区二区免费视频| 亚洲av乱码中文一区二区三区| 亚洲熟妇av一区二区三区漫画| 亚洲人成在线免费观看| 色爽黄1000部免费软件下载| 亚洲男人天堂av| 亚洲国产av无码精品|