日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 課堂 > 技術(shù)開發(fā) > 正文

面向?qū)ο骍ML中類的關(guān)系探討

2023-06-18 12:51:35
字體:
供稿:網(wǎng)友

如果你確定兩件對象之間是is-a的關(guān)系,那么此時(shí)你應(yīng)該使用繼承;比如菱形、圓形和方形都是形狀的一種,那么他們都應(yīng)該從形狀類繼承而不是聚合。如果你確定兩件對象之間是has-a的關(guān)系,那么此時(shí)你應(yīng)該使用聚合;比如電腦是由顯示器、CPU、硬盤等組成的,那么你應(yīng)該把顯示器、CPU、硬盤這些類聚合成電腦類,而不是從電腦類繼承。

類間的關(guān)系

網(wǎng)上關(guān)于此類的討論非常多,發(fā)現(xiàn)對于該問題的理解各有各的說法,而各個(gè)說法中又相去甚遠(yuǎn)。通過瀏覽這些討論以及對《O'Reilly - UML 2.0 In A Nutshell (2007)》的參考,發(fā)表一下自己的看法

類間關(guān)系有很多種,在大的類別上可以分為兩種:縱向關(guān)系、橫向關(guān)系。

縱向關(guān)系就是繼承關(guān)系,它的概念非常明確,也成為OO的三個(gè)重要特征之一,這里不過多的討論。

橫向關(guān)系較為微妙,按照UML的建議大體上可以分為四種:

(1)依賴    (Dependency)

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

(3)聚合    (Aggregation)

(4)組合    (Composition)

它們的強(qiáng)弱關(guān)系是沒有異議的:依賴 < 關(guān)聯(lián) < 聚合 < 組合

然而它們四個(gè)之間的差別卻又不那么好拿捏,需要好好體會(huì)。

1、依賴

UML表示法:虛線 + 箭頭

關(guān)系:" ... uses a ..."

此關(guān)系最為簡單,也最好理解,所謂依賴就是某個(gè)對象的功能依賴于另外的某個(gè)對象,而被依賴的對象只是作為一種工具在使用,而并不持有對它的引用。

典型的例子很多,比如:

class Human
{
    public void breath()
    {
        Air freshAir = new Air();
        freshAir.releasePower();
    }
    public static void main()
    {
        Human me = new Human();
        while(true)
        {
            me.breath();
        }
    }
}

class Air
{
    public void releasePower()
    {
        //do sth.
    }
}
 

釋義:一個(gè)人自創(chuàng)生就需要不停的呼吸,而人的呼吸功能之所以能維持生命就在于吸進(jìn)來的氣體發(fā)揮了作用,所以說空氣只不過是人類的一個(gè)工具,而人并不持有對它的引用。

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

UML表示法:實(shí)線 + 箭頭

關(guān)系:" ... has a ..."

所謂關(guān)聯(lián)就是某個(gè)對象會(huì)長期的持有另一個(gè)對象的引用,而二者的關(guān)聯(lián)往往也是相互的。關(guān)聯(lián)的兩個(gè)對象彼此間沒有任何強(qiáng)制性的約束,只要二者同意,可以隨時(shí)解除關(guān)系或是進(jìn)行關(guān)聯(lián),它們在生命期問題上沒有任何約定。被關(guān)聯(lián)的對象還可以再被別的對象關(guān)聯(lián),所以關(guān)聯(lián)是可以共享的。

典型的例子很多,比如:

class Human
{
    ArrayList friends = new ArrayList();
    public void makeFriend(Human human)
    {
        friends.add(human);
    }
    public static void main()
    {
        Human me = new Human();
        while(true)
        {
            me.makeFriend(mySchool.getStudent());
        }
    }
}

釋義:人從生至死都在不斷的交朋友,然而沒有理由認(rèn)為朋友的生死與我的生死有必然的聯(lián)系,故他們的生命期沒有關(guān)聯(lián),我的朋友又可以是別人的朋友,所以朋友可以共享。

3、聚合:  

UML表示法:空心菱形 + 實(shí)線 + 箭頭

關(guān)系:" ... owns a ..."

聚合是強(qiáng)版本的關(guān)聯(lián)。它暗含著一種所屬關(guān)系以及生命期關(guān)系。被聚合的對象還可以再被別的對象關(guān)聯(lián),所以被聚合對象是可以共享的。雖然是共享的,聚合代表的是一種更親密的關(guān)系。

典型的例子很多,比如:

class Human
{
    Home myHome;
    public void goHome()
    {
        //在回家的路上
        myHome.openDoor();
        //看電視
    }
    public static void main()
    {
        Human me = new Human();
        while(true)
        {
            //上學(xué)
            //吃飯
            me.goHome();
        }
    }
}

釋義:我的家和我之間具有著一種強(qiáng)烈的所屬關(guān)系,我的家是可以分享的,而這里的分享又可以有兩種。其一是聚合間的分享,這正如你和你媳婦兒都對這個(gè)家有著同樣的強(qiáng)烈關(guān)聯(lián);其二是聚合與關(guān)聯(lián)的分享,如果你的朋友來家里吃個(gè)便飯,估計(jì)你不會(huì)給他配一把鑰匙。

4、組合

UML表示法:實(shí)心菱形 + 實(shí)線 + 箭頭

關(guān)系:" ... is a part of  ..."

組合是關(guān)系當(dāng)中的最強(qiáng)版本,它直接要求包含對象對被包含對象的擁有以及包含對象與被包含對象生命期的關(guān)系。被包含的對象還可以再被別的對象關(guān)聯(lián),所以被包含對象是可以共享的,然而絕不存在兩個(gè)包含對象對同一個(gè)被包含對象的共享。

典型的例子很多,比如:

class Human
{
    Heart myHeart = new Heart();
    public static void main()
    {
        Human me = new Human();
        while(true)
        {
            myHeart.beat();
        }
    }
}

釋義:組合關(guān)系就是整體與部分的關(guān)系,部分屬于整體,整體不存在,部分一定不存在,然而部分不存在整體是可以存在的,說的更明確一些就是部分必須創(chuàng)生于整體創(chuàng)生之后,而銷毀于整體銷毀之前。部分在這個(gè)生命期內(nèi)可以被其它對象關(guān)聯(lián)甚至聚合,但有一點(diǎn)必須注意,一旦部分所屬于的整體銷毀了,那么與之關(guān)聯(lián)的對象中的引用就會(huì)成為空引用,這一點(diǎn)可以利用程序來保障。心臟的生命期與人的生命期是一致的,如果換個(gè)部分就不那么一定,比如闌尾,很多人在創(chuàng)生后的某個(gè)時(shí)間對其厭倦便提前銷毀了它,可它和人類的關(guān)系不可辯駁的屬于組合。

在UML中存在一種特例,就是允許被包含對象在包含對象銷毀前轉(zhuǎn)移給新的對象,這雖然不自然,但它給需要心臟移植的患者帶來了福音。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
91精品国产综合久久久久久| 日韩精品在线看| 91精品国产入口| 精品福利在线观看| 日韩欧美看国产| 精品久久久久久综合日本欧美| 国产一二三视频| 天堂√8在线中文| 亚洲区中文字幕| 国产传媒久久久| 亚洲一区在线观看免费| 91精品婷婷国产综合久久竹菊| 免费在线视频一级不卡| 国产网站av| 欧美国产日韩在线播放| 91精品国产经典在线观看| 欧美一卡2卡3卡4卡| 中文字幕在线高清| 日韩欧中文字幕| 大香一本蕉伊线亚洲网| 91精品国产91久久久久久不卡| 91精品啪在线观看国产60岁 | 国产第一页在线播放| 在线手机中文字幕| 中文字幕久久av| 中文字幕在线视频日韩| 高清中文字幕在线| 欧美日韩国产一中文字不卡| 日韩亚洲不卡在线| 日韩视频一区在线观看| 91精品国产手机| 欧美日韩亚洲视频| 快she精品国产999| 免费日韩精品中文字幕视频在线| 国产视频1区2区| 亚洲制服一区| 久久久综合av| 欧美日韩国产中文| wwww亚洲| 国产一级视频在线播放| 国产在线高清精品| 中文字幕亚洲乱码| 日韩视频在线免费播放| 91精品国产综合久久蜜臀 | 国产网站欧美日韩免费精品在线观看 | 欧美日韩在线精品成人综合网| 欧美人妻一区二区三区| 日韩在线观看一区| 欧美国产综合在线V| 国产偷国产偷亚洲清高网站 | 亚洲区中文字幕| 一区精品在线播放| 精品日韩视频在线观看| 91精品国产色综合久久久蜜香臀| 欧美1234区| 日韩欧美一级精品久久| 欧美亚洲天堂| 欧美亚洲专区| 日韩久久不卡| 一区二区日韩av| 精品视频www| 日韩精品中文在线观看| 欧美日韩高清在线| 精品对白一区国产伦| 日韩www在线| 亚洲黄色一区二区| 天堂在线www天堂中文在线 | 91精品国产综合久久久久| 久久99久久久久久久噜噜| 日韩欧美亚洲日产国| 国产在线一在线二| 欧美日韩国产一二三| 国产一区成人| 国产欧美日韩在线看| 久久蜜桃精品| 欧美日韩精品不卡| 精品在线一区二区| 亚洲三级欧美| 一级片免费网站| 欧美日韩性视频| 成年人黄国产| 免费视频国产一区| 天天综合天天综合| www日韩在线观看| 日韩国产亚洲欧美| 在线一区二区三区精品| 日韩在线观看a| 一级网站免费观看| 亚洲免费精品视频| 欧美日韩国产中文精品字幕自在自线| 欧美日韩高清在线| 亚洲免费精品| 午夜精品一区二区三区免费视频| 国产在线第一页| 国产成人精品av久久| 久久中文免费视频| 亚洲图片小说综合| 欧美 日韩 中文字幕| 色综合久久六月婷婷中文字幕| 中文字幕亚洲国产| 91吃瓜在线观看| 狠狠色噜噜狠狠狠狠97| 亚洲a一级视频| 精品激情国产视频| 91精品国产自产在线| 亚洲va中文字幕| 成年人黄国产| 精品中文字幕在线播放| 国产一级片播放| 国产日韩精品在线观看| 欧美在线视频一区二区| 日韩久久精品网| 国产专区中文字幕| 日韩国产欧美在线视频| 亚洲高清视频一区| 黄色国产网站在线观看| 一区二区不卡视频在线观看| 老司机久久99久久精品播放免费| 一区二区在线观| 亚洲免费婷婷| 日韩国产成人| 欧美亚洲天堂网| 日韩 欧美 综合| 日韩欧美中文字幕精品| www.精品av.com| 91精品国产色综合久久久蜜香臀| 日韩精品丝袜在线| 久久91精品久久久久久秒播| 亚洲一区中文字幕在线| 国产精品一区二三区| 99精品视频国产| 欧美日韩亚洲国产综合| av一区在线观看| 日韩国产高清一区| 国产伦精品免费视频| 国产高清一区| 国产拍揄自揄精品视频麻豆| 欧美日韩综合高清一区二区| 成人a在线观看| www.狠狠| 久久精品国产91精品亚洲| 免费看日韩精品| 亚洲欧洲综合另类| 国产在线观看精品| 在线综合 亚洲 欧美中文字幕| 中文天堂资源在线| 91精品视频观看| 蜜臀国产一区| 91精品国产综合久久精品app| 精品视频—区二区三区免费| 日韩中文字幕综合| 日韩一级在线免费观看| 国产一卡2卡3卡四卡网站| 欧美日韩一二三| 日韩精品首页| 日韩美女视频一区二区在线观看| 日本a口亚洲| 国产福利免费观看| 国产1卡2卡三卡四卡网站| h片精品在线观看| 粉嫩粉嫩芽的虎白女18在线视频| 亚洲国产无线乱码在线观看| 欧美日韩高清一区二区| 日韩欧美不卡| aaa欧美日韩| 中文字幕国产欧美| 亚洲一区在线观看网站| 亚洲国产欧美日韩在线| 男人的天堂网av| 国产在线黄色| 亚洲福利在线观看| 欧美日韩中文字幕一区| 欧美日韩综合在线观看| 精品国产乱码久久久久久牛牛| 顶级网黄在线播放| 亚洲福利精品在线| 免费看日韩精品| 国产在线观看黄色| 激情久久99| 在线黄色国产电影| av丝袜在线| 日韩中文字幕在线视频播放| 日韩欧美在线中文字幕| 精品国产1区2区3区| 最近中文字幕日韩精品| 不卡一二三区| 丰满少妇一区| 美女在线视频一区| 国产日韩精品在线| 一级日本免费的| 婷婷久久综合网| 中文字幕欧美亚洲| 拍真实国产伦偷精品| 亚洲免费视频一区| 91精品久久久久久久久| 欧美日韩免费视频| 日本亚洲视频在线| 国产亚洲一区字幕| 亚洲一区日韩精品中文字幕| 国产乱国产乱300精品| 在线看的av| 精品日韩av一区二区| 欧美日韩综合在线免费观看| 日韩综合精品| 欧美日韩人人澡狠狠躁视频| 日韩中文字幕视频网| av一级在线| 久久久精品福利| 国产日韩电影| 色一区在线观看| 亚洲免费婷婷| 欧美日韩精品在线视频| 久久婷婷国产| 午夜国产在线视频| 99色在线视频| 精品色蜜蜜精品视频在线观看| 一本一道综合狠狠老| 91精品久久久久久久91蜜桃| 亚洲国产午夜精品| 国产一区 二区 三区一级| 日本不卡免费高清视频| 日韩免费视频一区| 亚洲欧洲精品在线| 快she精品国产999| 中文亚洲欧美| 久久久久久久久99精品| 日韩免费视频| 亚洲黄色片在线观看| 不卡视频一区二区| 国产一区成人| 91蜜桃在线视频| 中文字幕久久av| 欧美乱大交xxxxx免费| 欧美日韩一二三四| 久久久久久久久99精品| 色综合天天性综合| 亚洲a级在线播放观看| 最近高清中文在线字幕在线观看1| 日韩欧美国产亚洲| 欧美色视频一区二区三区在线观看| 精品国产1区二区| 亚洲中文字幕在线一区| 日韩欧美中文字幕精品| 国产欧美日韩中文字幕在线| 日韩免费视频一区二区视频在线观看| 国产第一页在线播放| 日韩精品在线观看网站| 欧美日韩在线视频首页| 在线视频第一页| 91精品久久久久久久久久| 91精品国产高清| 欧美日韩国产一中文字不卡| 精品福利在线观看| 国产欧美日韩综合| 国产丝袜一区| 日韩精品在线网站| 老司机久久99久久精品播放免费| 欧美日韩精品三区| 欧美国产三级| 欧美日韩午夜在线视频| 日韩中文字幕观看| 日韩视频在线一区二区| 国产成人一区二区精品非洲| 五月天久久比比资源色| 国产黄色在线看| 日韩在线一区二区| 日韩专区中文字幕| 欧美 日韩 国产 高清| 欧美日韩中文字幕在线视频| 亚洲福利一区二区三区| 国产丝袜一区二区| 日韩中文在线中文网三级| 自拍日韩亚洲一区在线| 中文字幕一区二区三区精品| 精品极品三级久久久久| 搞黄在线观看| 精品久久久久久无| 日韩欧美99| 亚洲综合欧美在线| 一区二区91| 91精品久久久久久久久久入口| 久草视频观看| 久久久久蜜桃| 久久精品一二三| 五月综合激情日本mⅴ| 91久久久精品| 欧美日韩在线视频免费观看| 国产羞羞视频在线播放| 黄色片免费在线| 亚洲成av人综合在线观看| 日韩精品福利视频| 国产91一区| 不卡在线一区二区| 国产一卡二卡3卡4卡四卡在线| 欧美日韩国产综合视频在线观看中文 | 欧美人妻一区二区三区| 狠狠色综合色区| 91av久久久| 精品久久久精品| 欧美高清一级片在线| 国产中文伊人| 黄色在线播放网站| 国产高潮久久久| 日韩在线a电影| 中文字幕综合在线| 精品国产乱码久久久久久牛牛| 91www成人久久| 国产亚洲二区| 亚洲福利视频在线| 国产乱国产乱300精品| 欧美日韩国产区| 亚洲成av人片一区二区密柚| 欧美亚洲另类制服自拍| 久久精品夜夜夜夜久久| 日韩精品在线观| 中文字幕亚洲区| 日本亚洲欧美三级| 欧美日韩国产高清视频| 91精品国产自产观看在线| 91久久精品国产| 日本一欧美一欧美一亚洲视频| 欧美一级搡bbbb搡bbbb| 中文字幕久久精品| 国产对白在线| 精品极品三级久久久久| 亚洲一区日韩精品中文字幕| 久艹在线视频| 久草视频观看| 日韩欧美在线综合| 中文字幕亚洲国产| 中文在线一区| 91极品视频在线观看| 国产欧美日韩中文| 精品国产乱码久久久久久牛牛| 日韩欧美不卡在线| 中文字幕线观看| 国产真实乱子伦精品视频| 日韩精品在线网站| 日韩精品一级| 国产成人精品综合久久久| 亚洲欧美日本另类| 欧美日韩精品在线| 亚洲一区在线观看视频| 欧美 亚洲 精品 三区| 日韩欧美在线影院| 国产日韩第一页v| 日韩免费高清一区二区| 中文字幕在线观看精品| 欧美一级免费看| 日韩欧美在线字幕 | 国产在线www| 日韩精品首页| 久久精品最新免费国产成人| 在线视频不卡国产V| 日韩在线不卡一区| 国产精品视频福利一区二区| 欧美特黄一区| 国产亚洲一区字幕| av三级在线观看| 欧美日韩一二三| 91av久久久| 日韩精品在线视频观看| 亚洲а∨精品天堂在线| 亚洲人线精品午夜| 亚洲三级免费看| 免费网站看黄yyy222| 午夜一区二区三区视频| 在线中文字幕视频| 国产欧美日韩不卡| 国产日韩在线视频| 欧美日韩精品在线 | 综合激情国产一区| 久久夜色精品国产欧美乱极品| 婷婷中文字幕一区三区| 国产日韩精品电影| 国产欧美日韩视频在线| 精品一二三区视频| 中文在线中文字幕| 国产三级在线观看视频| 91麻豆精品国产91久久久使用方法 | 日韩午夜一区| 久久精品国产91精品亚洲| 国产乱一区二区| 91午夜在线| 91精品国产综合久久福利 | 中文国产字幕在线观看| 欧美国产综合视频| 亚洲天堂国产视频| av高清一区| 婷婷综合福利| 国产成人精品三级| 日韩高清在线一区二区| 国产精品一区二三区| 尤物av一区二区| 日韩在线 中文字幕| 欧美国产综合视频| 日韩不卡一二三区| 欧美日韩在线播放一区| 欧美日韩国产综合视频在线观看中文| 一级特黄aaa大片在线观看|