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

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

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

    UML中關(guān)聯(lián)(Association)和依賴(Dependency)的區(qū)別

    原文轉(zhuǎn)自:http://blog.csdn.net/metasearch/article/details/2334853

     在UMLCHINA精華區(qū),看到了一些關(guān)聯(lián)和依賴的討論,似乎越講越糊涂.我想談一點自己的看法:
    1、在《UML參考手冊》第37頁中,指出“關(guān)聯(lián)和泛化都是依賴關(guān)系,但是它們有更特別的語義,故它們有自己的名字和詳細(xì)的語義。我們通常用依賴這個詞來指其他的關(guān)系。”
    2、在《UML參考手冊》30頁中,定義了關(guān)聯(lián)為“關(guān)聯(lián)描述了系統(tǒng)中對象或?qū)嵗g的離散連接。最普通的關(guān)聯(lián)是一對類元之間的二元關(guān)聯(lián)。關(guān)聯(lián)的實例之一是鏈。”
    3、接著,又說明了“關(guān)聯(lián)關(guān)系是整個系統(tǒng)中使用的“膠粘劑”,如果沒有它,那么只剩下不能一起工作的孤立的類。”

    根據(jù)這三點引用,我們就可以知道關(guān)聯(lián)是類之間的“靜態(tài)”關(guān)系,只有通過這個關(guān)系的導(dǎo)航,一個對象才能找到另一個對象。它就象我們手中的通信錄,取得其他對象的聯(lián)系方法。除了這個職責(zé)之外,關(guān)聯(lián)沒有進一步的意義了。這時有人可能會問,我們總該用關(guān)聯(lián)(通信錄)為程序做點什么呀!不好意思,關(guān)聯(lián)除了能找到對方之外,別的什么都不懂了。因此,一般來說,關(guān)聯(lián)是用語言機制中的指針來實現(xiàn),可以在程序初始或運行是建立。當(dāng)然,也可以用任何標(biāo)識對象,并能在運行中定位對象的機制來實現(xiàn)。
    依賴關(guān)系,簡單地來說就是“動態(tài)”的關(guān)系,提供者可能要求或指示依賴關(guān)系中客戶的變化,依賴者為了達成要求被依賴對象行動的目的,依賴首先要取得對方的引用,以便于實施這個依賴操作,對方對象的引用可以通過二種方法獲得,一種是依賴對象之間也存在關(guān)聯(lián)關(guān)系,所以它可以直接通過自己的關(guān)聯(lián)找到對方對象的引用,第二種是依賴對象之間不存在直接關(guān)聯(lián)關(guān)系,程序設(shè)計者有責(zé)任設(shè)計通過第三方對象的關(guān)聯(lián),經(jīng)過一次或多次的關(guān)聯(lián)導(dǎo)航獲得目標(biāo)對象的引用。最后,依賴對象通過這二種的任一種方法獲得目標(biāo)對象引用后,就可以向目標(biāo)對象施加相應(yīng)的依賴關(guān)系行為
    根據(jù)上述的分析,可以簡單地作一個推論,僅對于這兩個關(guān)系來說,對象之間存在四種關(guān)系:
    1、無關(guān)聯(lián),無依賴
    它們是無關(guān)的對象類。
    2、有關(guān)聯(lián),無依賴
    一般用來為其它對象類導(dǎo)航到關(guān)聯(lián)端對象的橋梁。關(guān)聯(lián)對象之間除了相互存儲引用外,沒有進一步的行為。也許,關(guān)聯(lián)引用在程序中沒有導(dǎo)航經(jīng)過,這樣的話,可以取消關(guān)聯(lián)關(guān)系,就變成了(1)的情況。
    3、無關(guān)聯(lián),有依賴
    這是我們常常希望實現(xiàn)的松耦合關(guān)系的情景,對象之間沒有直接的關(guān)聯(lián)關(guān)系存在,所以它們沒有直接存儲對方的引用,使程序的可以更靈活地變動。但是為了獲得對 象的引用以便實施依賴行為,比如調(diào)用,發(fā)消息,訪問等依賴操作,可以通過間接關(guān)聯(lián)來定位對方。一般情況下,設(shè)計者會為依賴關(guān)系提供一個存取方法,獲取對象 引用。如果間接關(guān)聯(lián)無法到達彼此對方,那么這個依賴是不可實現(xiàn)的,這種“偽依賴”要么是程序設(shè)計的邏輯錯誤(關(guān)系至少出現(xiàn)一個對象),要么是正常的 NULL對象(關(guān)系允許0個對象出現(xiàn))。
    4、有關(guān)聯(lián),有依賴
    當(dāng)然,這是最簡單,也是最直接的實現(xiàn)了,它的意思也表達的最清楚。依賴的實施直接通過本身的關(guān)聯(lián)引用進行。這時,對象間的耦合關(guān)系確實比較強了,看需要是否解耦或不變。
    ============================================================================
    對類而言依賴存在的理由有:B作為一個參數(shù)被傳遞給A眾所定義的一個方法(參數(shù)可見性);B在A的一個方法眾被聲明未局部對象(局部聲明可見性);B對A全局可見(全局可見性)
    而關(guān)聯(lián)一般應(yīng)來描述普通的屬性可見性(B是A的一個屬性, 是一種相對長久的可見性, 是普遍存在的,)
    ==============================================================================
    依賴一般的表現(xiàn)方法是方法的局部變量,或者是方法內(nèi)對靜態(tài)方法的引用!
    關(guān)聯(lián)一般的表現(xiàn)方法是對象的全局變量!
    依賴:
      class   A  {   
            void   methodA()   
            {   
                    B   b   =   new   B();   
                    b.methodB();     
            }   
      } 

    關(guān)聯(lián):

     class A {   
            B   b   =   new   B();   
            void   methodA()   
            {   
                  b.methodB();   
            }   
      } 


    Kyle Wang

    posted on 2012-10-30 23:08 王樹東 閱讀(3539) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計

    公告

    常用鏈接

    留言簿

    隨筆分類(17)

    隨筆檔案(15)

    文章分類(4)

    文章檔案(5)

    收藏夾(4)

    Algorithm

    Design

    Environment Setup

    Installer

    Maven

    MINA

    OS

    Skills for Java

    VIM

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 16女性下面无遮挡免费| 国产精品99精品久久免费| 女人被男人躁的女爽免费视频| 亚洲字幕在线观看| 亚洲大片免费观看| 亚洲第一成年网站大全亚洲| 色播精品免费小视频| 国产成人精品日本亚洲专| 午夜小视频免费观看| 亚洲色在线无码国产精品不卡| 在线免费视频一区| 青娱乐在线免费观看视频| 亚洲精品一级无码鲁丝片| 最近更新免费中文字幕大全| 亚洲Aⅴ无码专区在线观看q| 1000部啪啪毛片免费看| 亚洲av专区无码观看精品天堂 | 亚洲精品福利视频| 美丽姑娘免费观看在线观看中文版| 亚洲韩国—中文字幕| 日本免费网址大全在线观看| 亚洲中文字幕无码av| 亚洲成a人片在线观看老师| 欧洲人成在线免费| 亚洲一本到无码av中文字幕| 四虎成人精品在永久免费| 91免费在线视频| 亚洲综合色区中文字幕| 四虎国产精品免费视| 国内少妇偷人精品视频免费| 亚洲乱码无限2021芒果| 四虎成人精品在永久免费| 性无码免费一区二区三区在线 | 日日躁狠狠躁狠狠爱免费视频| 国产亚洲综合色就色| 黄在线观看www免费看| 黄色一级视频免费观看| 精品日韩亚洲AV无码一区二区三区| 全免费一级午夜毛片| 久草福利资源网站免费| 国产亚洲综合视频|