<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

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日本免费中文视频| 美女的胸又黄又www网站免费| 国产久爱免费精品视频 | 亚洲午夜成人精品无码色欲| 日本在线高清免费爱做网站| 亚洲高清美女一区二区三区| 99热这里只有精品免费播放| 日韩亚洲Av人人夜夜澡人人爽 | 三年片免费高清版| 亚洲色爱图小说专区| 伊人免费在线观看| 亚洲国产香蕉碰碰人人| 亚洲免费二区三区| 久久久久久亚洲精品影院| 免费看美女被靠到爽的视频| MM1313亚洲精品无码久久| 一级毛片直播亚洲| 国产性生大片免费观看性| 国产精品亚洲а∨无码播放| 久久午夜免费鲁丝片| 亚洲国产日韩在线人成下载| 成年女人午夜毛片免费视频| 亚洲精品国产suv一区88| 四虎影视精品永久免费网站| 国产一级a毛一级a看免费视频| 亚洲va在线va天堂va888www| 69式互添免费视频| 精品久久久久久亚洲综合网| 国产成人毛片亚洲精品| 青青草无码免费一二三区| 亚洲精品无码一区二区| 久久久久亚洲精品无码网址| 88av免费观看| 亚洲第一第二第三第四第五第六| 国产精品亚洲w码日韩中文| 91大神免费观看| 久久亚洲精品成人无码| 国产亚洲精品自在久久| 国内免费高清在线观看| 一级成人a做片免费| 亚洲一区在线视频观看|