• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 311, comments - 0, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            世界是普遍聯(lián)系的,因此程序世界中的類,也不可能是孤立的。UML為我們定義了它們之間的關(guān)系,就是:依賴、關(guān)聯(lián)、聚合、組合還有泛化。

                   泛化關(guān)系比較好理解,就是表示類之間的繼承關(guān)系。容易混淆的是依賴、關(guān)聯(lián)、聚合和組合的關(guān)系。這里做一些甄別:

                   1、 依賴和關(guān)聯(lián)的顛倒顛

                   在網(wǎng)上查找了一下依賴和關(guān)聯(lián)的區(qū)別,有說“關(guān)聯(lián)本身即是一種依賴”,亦有說“依賴是一種弱關(guān)聯(lián)”,其實說來說去是一檔子事。依賴和關(guān)聯(lián)都是說一個類用到了另一個類。其區(qū)別在于一個是使用,一個是擁有。

                 依賴:具有某種偶然性。比如說我要過河,沒有橋怎么辦,我就去借來一條小船渡過去。我與小船的關(guān)系僅僅是使用(借用)的關(guān)系。表現(xiàn)在代碼上,為依賴的類的某個方法以被依賴的類作為其參數(shù)。或者是class A 的某個方法創(chuàng)造了 class B 的實例抑或?qū)lass B的靜態(tài)方法的調(diào)用。如果A依賴于B,那意味著B的變化可能要求A也發(fā)生變化;

                   這是uml圖表示的依賴關(guān)系:
                   

            關(guān)聯(lián):有名的客戶和訂單的關(guān)系以及公司和員工的關(guān)系,都是關(guān)聯(lián)關(guān)系。還有就是我和我的單車的例子,他們都是一種“擁有”的關(guān)系。表現(xiàn)在代碼上,就是一個類包含另一個類的實例,通常表現(xiàn)為被關(guān)聯(lián)類以類屬性的形式出現(xiàn)在關(guān)聯(lián)類的類定義中,也可以表現(xiàn)為關(guān)聯(lián)類引用了一個類型為被關(guān)聯(lián)類的全局變量。關(guān)聯(lián)可以使單向的,也可以使雙向的。

            從網(wǎng)上找到的公司和員工的UML圖和代碼 :


            可見依賴于與關(guān)聯(lián)亦有動靜之別,關(guān)聯(lián)的類“靜態(tài)”地引用了被關(guān)聯(lián)類的實例變量,而依賴的偶然性也正說明了它的動態(tài)性。

                  2、 聚合與組合同出而異體

                  聚合與組合其實都是關(guān)聯(lián)的特例,都是整體和部分的關(guān)系。他們的區(qū)別在于聚合的兩個對象之間是可分離的,他們具有各自的生命周期。而組合往往表現(xiàn)為一種唇齒相依的關(guān)系。

            聚合:一種容納或曰包含的關(guān)系,如同機(jī)場和飛機(jī),汽車和輪胎的關(guān)系。其實仔細(xì)想想,前面的公司和員工的關(guān)系也有聚合的味道在里面。

            組合:也可稱之為強(qiáng)聚合,整體和部分是不可分的,整體的生命周期結(jié)束時也就是部分的生命周期到頭時。很有名的就是桌子和桌子腿的關(guān)系。

                  聚合的UML圖:

            組合的UML圖:


             

            然而,聚合與組合的代碼表現(xiàn)形式是一樣的,都可以表現(xiàn)為以下的形式,它們僅僅具有語義上的區(qū)別。

            聚合:指的是整體與部分的關(guān)系。通常在定義一個整體類后,再去分析這個整體類的組成結(jié)構(gòu)。從而找出一些組成類,該整體類和組成類之間就形成了聚合關(guān)系。例如一個航母編隊包括海空母艦、驅(qū)護(hù)艦艇、艦載飛機(jī)及核動力攻擊潛艇等。需求描述中“包含”、“組成”、“分為…部分”等詞常意味著聚合關(guān)系。
             
            組合:也表示類之間整體和部分的關(guān)系,但是組合關(guān)系中部分和整體具有統(tǒng)一的生存期。一旦整體對象不存在,部分對象也將不存在。部分對象與整體對象之間具有共生死的關(guān)系

            久久无码专区国产精品发布| 亚洲人成电影网站久久| 国产精品久久久久无码av| 99久久99久久精品国产| 久久精品无码一区二区三区日韩| 久久精品亚洲乱码伦伦中文| 国产激情久久久久久熟女老人| 久久AV高清无码| 亚洲国产小视频精品久久久三级| 亚洲AV无码久久寂寞少妇| 精品国产婷婷久久久| 无码日韩人妻精品久久蜜桃| 久久激情五月丁香伊人| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 91久久婷婷国产综合精品青草 | 久久精品一区二区三区不卡| 亚洲欧美日韩精品久久亚洲区| 精品国际久久久久999波多野| 亚洲国产成人精品无码久久久久久综合 | 久久国产精品-久久精品| 久久只有这里有精品4| 国产精品欧美亚洲韩国日本久久| 色综合久久久久久久久五月| 久久综合给合综合久久| 色综合色天天久久婷婷基地| 国内精品伊人久久久久av一坑| 五月丁香综合激情六月久久| 国产精品久久新婚兰兰| 亚洲国产精品无码久久九九| 狠狠久久综合伊人不卡| 99久久精品国产综合一区| 日本久久久久久中文字幕| 成人久久久观看免费毛片| 久久精品国产亚洲AV嫖农村妇女 | 香蕉久久夜色精品国产尤物| 久久亚洲国产精品123区| 狠狠久久综合| 漂亮人妻被中出中文字幕久久 | 99久久婷婷国产综合精品草原 | 国产精品成人无码久久久久久| 久久这里只有精品首页|