<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    紅知博客

    知其然,亦知其所以然
    posts - 32, comments - 35, trackbacks - 0, articles - 0

    關(guān)聯(lián)--依賴(lài)、組合--聚合   聯(lián)系與區(qū)別:

    依賴(lài)是比關(guān)聯(lián)弱的關(guān)系
    ,關(guān)聯(lián)代表一種結(jié)構(gòu)化的關(guān)系,體現(xiàn)在生成的代碼中,以java為例:  
      若類(lèi)A單向關(guān)聯(lián)指向類(lèi)B,則在類(lèi)A中存在一個(gè)屬性B   b。  
      若類(lèi)A依賴(lài)類(lèi)B,則不會(huì)有這個(gè)屬性,類(lèi)B的實(shí)例可能存在于某個(gè)方法調(diào)用的參數(shù)中,或某個(gè)方法的局部變量中。


    例如代碼:

         依賴(lài)----存在于某個(gè)方法調(diào)用的參數(shù)中,或某個(gè)方法的局部變量中。

    Person類(lèi)與Screwdriver類(lèi)的依賴(lài)關(guān)系

    [代碼表現(xiàn)]

    public class Person{   
        /** 擰螺絲 */  
        public void screw(Screwdriver screwdriver){   
            screwdriver.screw();   
        }   
    }   

        關(guān)聯(lián):---存在一個(gè)屬性

    公司(Company)和員工(Employee)的關(guān)聯(lián)關(guān)系

    [代碼表現(xiàn)]
    public class Company{   
        private Employee employee;   
        public Employee getEmployee(){   
            return employee;   
        }   
        public void setEmployee(Employee employee){   
            this.employee=employee;   
        }   
        //公司運(yùn)作   
        public void run(){   
            employee.startWorking();   
        }   
    }  

        
        聚合: 空心菱形加實(shí)線(xiàn)箭頭表示
     表示C9聚合C10,但是C10可以離開(kāi)C9而獨(dú)立存在(獨(dú)立存在的意思是在某個(gè)應(yīng)用的問(wèn)題域中這個(gè)類(lèi)的存在有意義。這句話(huà)怎么解,請(qǐng)看下面組合里的解釋?zhuān)?br />  同構(gòu)性,主體和部分不具有生命期的一致性

    課程組可由多個(gè)學(xué)生組成,課程組撤消了,學(xué)生還活得好好的,這是聚合。


        組合(也有人稱(chēng)為包容):一般是實(shí)心菱形加實(shí)線(xiàn)箭頭表示
     異構(gòu)性,部分和主體具有生命期上的一致性

    表示的是C8被C7包容,而且C8不能離開(kāi)C7而獨(dú)立存在。但這是視問(wèn)題域而定的,例如在關(guān)心汽車(chē)的領(lǐng)域里,輪胎是一定要組合在汽車(chē)類(lèi)中的,因?yàn)樗x開(kāi)了汽車(chē)就沒(méi)有意義了。但是在賣(mài)輪胎的店鋪業(yè)務(wù)里,就算輪胎離開(kāi)了汽車(chē),它也是有意義的,這就可以用聚合了。在《敏捷開(kāi)發(fā)》中還說(shuō)到,A組合B,則A需要知道B的生存周期,即可能A負(fù)責(zé)生成或者釋放B,或者A通過(guò)某種途徑知道B的生成和釋放。

    組合的例子:你顯示屏上的瀏覽器窗口,關(guān)閉瀏覽器,上面的按紐死掉不見(jiàn)了,這是組合(再打開(kāi)一個(gè)瀏覽窗口,按紐已經(jīng)不是原來(lái)的了)。

     


    Feedback

    # re: UML 知識(shí):關(guān)聯(lián)--依賴(lài)、組合--聚合  回復(fù)  更多評(píng)論   

    2007-09-28 16:25 by 千里冰封
    一直想學(xué)UML,但是都沒(méi)有學(xué)好

    # re: UML 知識(shí):關(guān)聯(lián)--依賴(lài)、組合--聚合  回復(fù)  更多評(píng)論   

    2008-04-21 22:28 by ROTAPPLE
    你沒(méi)解釋關(guān)聯(lián).

    # re: UML 知識(shí):關(guān)聯(lián)--依賴(lài)、組合--聚合  回復(fù)  更多評(píng)論   

    2008-04-22 12:54 by rotApple
    依賴(lài): 必須要那個(gè)類(lèi)來(lái)在一個(gè)方法里面使用.
    關(guān)聯(lián): 我有你,你也有我. 或單向, 而且彼此作為彼此的主要操作對(duì)象.
    聚合: 生命期, 不同時(shí)死亡
    組合: 生命期, 同時(shí)死亡

    以上是我的理解, 但我覺(jué)得我理解得太片面了. 而且我對(duì)依賴(lài)和關(guān)聯(lián)的理解總是很模糊, 請(qǐng)博主教教我好嗎? 我的MSN:rot-apple@hotmail.com我的郵箱:ken-chef@163.com

    如果可能的話(huà)希望可以收到你的郵件, 十分感謝!

    # re: UML 知識(shí):關(guān)聯(lián)--依賴(lài)、組合--聚合  回復(fù)  更多評(píng)論   

    2009-08-04 10:53 by mamajinco
    看完這個(gè) 徹底蒙了
    因?yàn)槲矣X(jué)得你把有的概念弄混了

    # re: UML 知識(shí):關(guān)聯(lián)--依賴(lài)、組合--聚合  回復(fù)  更多評(píng)論   

    2011-11-24 00:27 by caoshengquan
    關(guān)聯(lián)關(guān)系是統(tǒng)稱(chēng),關(guān)聯(lián)關(guān)系分組合和聚合,
    其中聚合表示has-a的關(guān)系,組合是contains-a的關(guān)系。即聚合只是簡(jiǎn)單的包含,組合是強(qiáng)關(guān)聯(lián),必須包含。
    例如人和大腦就組合,人和衣服就是聚合

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    我要啦免费统计
    主站蜘蛛池模板: 国产亚洲福利在线视频| 一级视频免费观看| 免费一级毛片在播放视频| 一个人看的免费高清视频日本| 亚洲日本一区二区三区在线| 久久久精品2019免费观看| 亚洲日本VA中文字幕久久道具| 亚洲成A∨人片天堂网无码| 精品免费tv久久久久久久| 亚洲一卡2卡三卡4卡无卡下载| 亚洲日本va午夜中文字幕久久| 在线观看肉片AV网站免费| 色噜噜亚洲男人的天堂| 亚洲日韩国产一区二区三区| 57pao一国产成视频永久免费| 精品亚洲视频在线| 亚洲好看的理论片电影| 国产在线观看免费不卡| 精品一区二区三区无码免费视频 | 最近2019中文免费字幕在线观看| 亚洲性色高清完整版在线观看| 亚洲精品tv久久久久| 日本免费网址大全在线观看| a高清免费毛片久久| 亚洲一区精彩视频| 久久亚洲精品中文字幕无码| 国产一级淫片免费播放| 亚洲一区二区三区免费在线观看| jizz日本免费| 亚洲精品欧美综合四区| 91精品国产亚洲爽啪在线观看| 亚洲国产精品无码久久青草| 国产成人免费爽爽爽视频| 99爱免费观看视频在线| 中文字幕在线视频免费| 国产青草亚洲香蕉精品久久| 中文字幕 亚洲 有码 在线| 亚洲午夜精品久久久久久人妖| 国产av无码专区亚洲av果冻传媒| 国产精品高清全国免费观看| 91免费资源网站入口|