亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

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

2023-06-18 12:51:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

類(lèi)間的關(guān)系

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

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

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

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

(1)依賴    (Dependency)

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

(3)聚合    (Aggregation)

(4)組合    (Composition)

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

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

1、依賴

UML表示法:虛線 + 箭頭

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

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

典型的例子很多,比如:

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)來(lái)的氣體發(fā)揮了作用,所以說(shuō)空氣只不過(guò)是人類(lèi)的一個(gè)工具,而人并不持有對(duì)它的引用。

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

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

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

所謂關(guān)聯(lián)就是某個(gè)對(duì)象會(huì)長(zhǎng)期的持有另一個(gè)對(duì)象的引用,而二者的關(guān)聯(lián)往往也是相互的。關(guān)聯(lián)的兩個(gè)對(duì)象彼此間沒(méi)有任何強(qiáng)制性的約束,只要二者同意,可以隨時(shí)解除關(guān)系或是進(jìn)行關(guān)聯(lián),它們?cè)谏趩?wèn)題上沒(méi)有任何約定。被關(guān)聯(lián)的對(duì)象還可以再被別的對(duì)象關(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());
        }
    }
}

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

3、聚合:  

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

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

聚合是強(qiáng)版本的關(guān)聯(lián)。它暗含著一種所屬關(guān)系以及生命期關(guān)系。被聚合的對(duì)象還可以再被別的對(duì)象關(guān)聯(lián),所以被聚合對(duì)象是可以共享的。雖然是共享的,聚合代表的是一種更親密的關(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)系,我的家是可以分享的,而這里的分享又可以有兩種。其一是聚合間的分享,這正如你和你媳婦兒都對(duì)這個(gè)家有著同樣的強(qiáng)烈關(guān)聯(lián);其二是聚合與關(guān)聯(lián)的分享,如果你的朋友來(lái)家里吃個(gè)便飯,估計(jì)你不會(huì)給他配一把鑰匙。

4、組合

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

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

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

典型的例子很多,比如:

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

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

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
久久久亚洲av波多野结衣| 在线观看日韩av先锋影音电影院| 你懂的网站在线播放| 国产成人精品电影| 男女午夜激情视频| av影视在线看| 亚洲1区2区3区4区| 欧美欧美午夜aⅴ在线观看| 久久美女艺术照精彩视频福利播放| 日韩va在线观看| 中文字幕乱视频| 久久久久久久色| 国产一区二区三区| 超碰97网站| 口述被爽到呻吟高潮自述| av资源在线播放| 久久高清免费观看| 老牛影视av一区二区在线观看| 欧美亚韩一区二区三区| 亚洲国产精品成人无久久精品| 久久人人爽人人爽爽久久| www.精品久久| 日韩精品系列| 都市激情久久| 日韩精品1区2区3区| 一区二区三区视频免费观看| 欧美一级日韩免费不卡| 欧美黄色片免费观看| 先锋av影院| 日本精品黄色| 亚洲国产精品第一页| 欧美丰满少妇xxxbbb| 手机在线视频一区| 一本色道久久加勒比精品| 亚洲欧美综合另类| 亚洲成a人片综合在线| 91免费国产在线| 精品三区视频| 亚洲国产精品成人无久久精品| 午夜成人亚洲理伦片在线观看| 欧美另类在线播放| 极品粉嫩饱满一线天在线| 国产精品你懂的在线| 同心难改在线观看| 全彩无遮拦全彩口工漫画全彩| 精品久久久无码中文字幕| 欧美gay男男猛男无套| 久久精品日产第一区二区三区精品版| 久久精品免费一区二区| 久久精品国产成人一区二区三区| 亚洲va欧美va人人爽午夜| 91久久大香伊蕉在人线| 国产亚洲精品av| av网站免费| 美女福利一区| 九一在线视频| 日本久久一区| 丰满的少妇愉情hd高清果冻传媒| 亚洲国产国产| www.26天天久久天堂| 国产精品入口麻豆免费观看| 久久93精品国产91久久综合| 黄色大片免费看| 国产在线中文字幕| 精品免费视频一区二区| 欧美日韩一区二区三区在线电影| 精品久久中出| 波多结衣在线观看| 欧美成熟毛茸茸复古| 欧美日韩激情视频一区二区三区| 欧美高清视频一区二区| 妺妺窝人体色www聚色窝仙踪| 亚洲精品在线观看视频| 超薄肉色丝袜一二三| 欧美在线免费观看视频| 中文字幕一区二区三区av| 亚洲精品播放| 最近看过的日韩成人| www日韩在线观看| 国产精品一区二区三区高清在线| 91成人破解版| 操bbb操bbb| 欧洲一区在线电影| 一级黄色片在线看| 国产又粗又大又爽的视频| 亚洲 国产 日韩 综合一区| 亚洲精品永久视频| 久久久久久久人妻无码中文字幕爆| 亚洲福利国产| 男人艹女人网站| 黄色正能量网站| 在线免费观看成人短视频| 国产日韩欧美电影| 国产日韩精品一区| 国产精品自产拍在线观看中文| 亚洲区 欧美区| 免费在线观看国产黄| 少妇激情综合网| 特级西西444www| 97dyy97影院理论片在线| 精品国产99久久久久久宅男i| 久久精品在线免费观看| www.成年人| 狠狠色丁香婷婷综合影院| 蜜桃久久av一区| 国产91色蝌蚪视频| 要久久爱电视剧全集完整观看| 精品1卡二卡三卡四卡老狼| zzjj国产精品一区二区| 快射视频在线观看| 中国老女人av| 日本一道高清一区二区三区| 国产91对白在线观看九色| 欧美 变态 另类 人妖| 亚洲黄色在线免费观看| 国产精品999久久久| 97精品国产97久久久久久春色| 久久久精品日韩| 成人免费无遮挡无码黄漫视频| 亚洲欧美成人vr| 久久久日本电影| 极品盗摄国产盗摄合集| 成人动漫在线播放| 久久久久久亚洲精品中文字幕| 欧美一区二区少妇| 91高潮大合集爽到抽搐| 精品日产免费二区日产免费二区| 国产精品高精视频免费| 久久久久亚洲精品中文字幕| 国产美女一区二区三区| 日本免费高清一区| 亚洲第一av在线| 国产精品亚洲产品| 一级视频在线播放| 欧美日韩一区二区电影| 狠狠色噜噜狠狠狠8888米奇| 午夜性色一区二区三区免费视频| 尤蜜粉嫩av国产一区二区三区| 午夜一区二区三视频在线观看| 97超碰国产精品女人人人爽| 精品黑人一区二区三区国语馆| 国产乡下妇女做爰毛片| jiyouzz国产精品久久| 精品在线视频观看| 日韩美女一区二区三区| 国产又黄又嫩又滑又白| 色狠狠一区二区三区| 欧美日韩 国产精品| 国产精品99久久久久久久久| 一区二区三区自拍| 精品偷拍各种wc美女嘘嘘| 亚洲新声在线观看| 国产精品美女久久久久av爽李琼| 久久精品国产亚洲av久| 夜夜嗨av一区二区三区网页| 欧美一区二区黄片| 欧美性受xxxx黑人猛交| 中文在线а√天堂官网| 国产成人精品久久亚洲高清不卡| 日精品一区二区| 亚洲福利影片在线| 亚洲特级黄色片| 成人在线观看a| 婷婷综合久久中文字幕蜜桃三电影| 日本视频在线观看免费| 国产精品天天看| 欧美a一片xxxx片| 亚洲网址在线| 性色a∨人人爽网站| 秋霞视频一区二区| 国产一区一一区高清不卡| 国产精品久久久久免费a∨大胸| 在线a人片免费观看视频| 国产激情视频网站| 性色av一区二区三区红粉影视| 国产精品激情电影| 亚洲 欧美 变态 另类 综合| 精品国产亚洲一区二区三区在线| 狠狠色伊人亚洲综合网站l| 神马久久影院| 欧美群妇大交群的观看方式| 99re久久最新地址获取| 精品精品导航| 久久av色综合| 一二三区在线观看| 999精品在线视频| 久久久精品高清| 搡的我好爽在线观看免费视频| 久久都是精品| 国产伦精品一区二区三区视频孕妇| 日韩电影大片中文字幕| 亚洲欧洲日本专区| 97超碰中文字幕| 伊人久久av导航| 中文字幕在线观看日| 国产成人精品日本亚洲专区61| 久久99久久久精品欧美| 日本在线精品| 色视频www在线播放| 十八禁一区二区三区| 欧美精品videos性欧美| 日本三级小视频| 理论视频在线观看| 欧美性极品videosbest| 97超碰欧美中文字幕| 久久男人资源站| 亚洲午夜羞羞片| 久久av中文字幕| 国产欧美视频一区二区| 国产亚洲精品久久777777| 日本视频网站在线观看| 热这里只有精品| 国产porny蝌蚪视频| 婷婷中文字幕一区| 亚洲国产成人av好男人在线观看| 欧美日韩人妻精品一区在线| 久久国产免费| 性猛交娇小69hd| 日韩三级在线| 濑亚美莉大战黑人中文字幕| 韩国av一区二区三区| 97视频国产在线| 精品久久久久久久| 亚洲精品国产精品自产a区红杏吧| 久久精品国产精品亚洲精品| 一级全黄肉体裸体全过程| 亚洲欧美一区二区激情| 久9久9色综合| 国产 日韩 欧美| 国产又色又爽又黄的| 亚洲美女综合网| 俺去亚洲欧洲欧美日韩| 农村妇女精品一区二区| 精品成人无码一区二区三区| 国产精品久久久久久久久毛片| 成人综合网网址| 污污视频网站在线免费观看| 色综合色狠狠综合色| 久久人人爽人人爽人人片亚洲| 欧美性高清videossexo| 国产视频91在线| 北条麻妃在线| 亚洲人成欧美中文字幕| 欧美日韩dvd在线观看| 天天爽夜夜爽夜夜爽精品视频| 日韩一区二区三区精品视频第3页| 欧美日韩国产天堂| 欧美色图亚洲激情| 欧美人善zozσ性伦交| 日韩精品91亚洲二区在线观看| 色婷婷av777| 一本色道久久99精品综合| 日本电影一区二区在线观看| 成人免费淫片免费观看| 国产人妖乱国产精品人妖| 中文字幕 日韩有码| 欧美亚洲视频一区| 亚洲AV无码一区二区三区少妇| 欧美国产禁国产网站cc| 夜鲁夜鲁夜鲁视频在线播放| 亚洲男人都懂第一日本| 成人av先锋影音| 精品一区欧美| 日韩午夜激情av| 国产亚洲成aⅴ人片在线观看| 五月天激情开心网| 丁香5月婷婷久久| 奇米影视777在线欧美电影观看| 成人免费在线| 91国产一区| 欧美精品一二三四区| 日韩av第一页| 久久亚洲人体| 色综合久久88色综合天天6| 日韩精品手机在线观看| 亚洲国内精品| 一区二区三区在线播放欧美| 波多野结衣在线播放一区| 91精品国产品国语在线不卡| 播放一区二区| 久久视频在线直播| 免费黄色网页| 四虎精品成人a在线观看| 国产黄a三级三级| 欧美sss在线视频| 欧美日韩免费一区二区三区视频| 免费看日本黄色| 日本一二三区不卡| www.亚洲欧美| 熟女熟妇伦久久影院毛片一区二区| 精品黑人一区二区三区在线观看| 欧美成人明星100排名| 中文字幕 亚洲视频| 亚洲性生活大片| 秋霞影院一区二区| 国产91九色视频| 精品人妻一区二区三区免费看| 无码人妻一区二区三区一| 欧美激情综合在线| 国产不卡一区二区在线观看| 夜夜嗨av一区二区三区四季av| 日韩免费在线视频| 成人乱色短篇合集| 久久精品这里都是精品| 天堂在线视频免费观看| 91官网在线免费观看| 2024国产精品视频| www.亚洲精品| www黄色在线观看| 欧美三级电影在线观看| 欧美被狂躁喷白浆精品| 国产成人无码精品久久久性色| 国产在线精品一区二区三区不卡| 热久久视久久精品18亚洲精品| yy6080久久伦理一区二区| 亚洲爱情岛论坛永久| 欧美另类一区二区三区| 精品久久国产老人久久综合| 激情久久av一区av二区av三区| 好吊的妞视频这里都有| 中文字幕狠狠干| 久久久久久久一| 99久久99久久精品国产片| 欧美va亚洲va在线观看蝴蝶网| 国产精品久久久久久久电影| 色婷婷久久久| 亚洲男人影院| 先锋影音男人av资源|