• <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++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
            世界是普遍聯系的,因此程序世界中的類,也不可能是孤立的。UML為我們定義了它們之間的關系,就是:依賴、關聯、聚合、組合還有泛化。

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

                   1、 依賴和關聯的顛倒顛

                   在網上查找了一下依賴和關聯的區別,有說“關聯本身即是一種依賴”,亦有說“依賴是一種弱關聯”,其實說來說去是一檔子事。依賴和關聯都是說一個類用到了另一個類。其區別在于一個是使用,一個是擁有。

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

                   這是uml圖表示的依賴關系:
                   

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

            從網上找到的公司和員工的UML圖和代碼 :


            可見依賴于與關聯亦有動靜之別,關聯的類“靜態”地引用了被關聯類的實例變量,而依賴的偶然性也正說明了它的動態性。

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

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

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

            組合:也可稱之為強聚合,整體和部分是不可分的,整體的生命周期結束時也就是部分的生命周期到頭時。很有名的就是桌子和桌子腿的關系。

                  聚合的UML圖:

            組合的UML圖:


             

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

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

            久久精品亚洲精品国产色婷| 一级做a爱片久久毛片| 色综合合久久天天给综看| 日韩电影久久久被窝网| 久久久久亚洲AV片无码下载蜜桃| 久久精品成人欧美大片| 久久99国产精一区二区三区| 色播久久人人爽人人爽人人片aV | 亚洲伊人久久精品影院| 国产精品99精品久久免费| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 伊人久久大香线蕉精品| 看全色黄大色大片免费久久久| 久久青青草原亚洲av无码app| 亚洲国产成人久久综合碰碰动漫3d| 热久久视久久精品18| 国产精品青草久久久久婷婷| 久久中文字幕人妻丝袜| 精品国产青草久久久久福利| 久久水蜜桃亚洲av无码精品麻豆| 久久精品国产亚洲7777| 欧美激情精品久久久久| 欧美喷潮久久久XXXXx| 久久99热这里只有精品国产| 久久国产乱子伦精品免费午夜| 精品无码久久久久久尤物| 性高湖久久久久久久久| 久久久久久综合网天天| 亚洲伊人久久综合影院| 性做久久久久久久久久久| 精品久久久久中文字幕一区| 99久久国产亚洲高清观看2024 | 久久精品国产2020| 精品久久久久久久久免费影院| 精品久久久久久无码人妻热| 国产精品热久久无码av| 91精品国产高清久久久久久国产嫩草 | 久久99精品久久久久久不卡| 国产精品成人无码久久久久久 | 东京热TOKYO综合久久精品| 久久99精品久久久久久动态图|