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

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

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

    hello world

    隨筆 - 2, 文章 - 63, 評論 - 0, 引用 - 0
    數據加載中……

    UML中類之間的關系

      UML中類之間的關系分為以下幾種:依賴、關聯、泛化、聚合、組合。

      依賴是指一個類使用了另一個類,它是一種使用關系,描述了一個事物的規格說明的變化可能會影響到使用它的另一個事物(反之不一定)。最常見的依賴關系是一個類內部中使用到了另一個類的定義。在UML中表示為一條指向被依賴事物的虛線。

      依賴可以采取多種方式來實現,如以下代碼

    						
    						
    						
    								internal
    								 class
    								 DependReturnType
    {

    }
    internal class DependParameter
    {

    }
    internal class DependVarible
    {

    }
    class Depend
    {
    public DependReturnType Test(DependParameter param)
    {
    DependVarible var
    = new DependVarible();
    return new DependReturnType();
    }
    }
    Depend類依賴于DependReturnType類、DependParameter類和DependVarible類,這就表明依賴的關系可以通過返回值、方法參數或者內部定義變量的形式來實現。

       當類之間在概念上有連接關系時,類之間的連接稱之為關聯,關聯是一種結構關系,說明一個事物的對象與另一個事物的對象相聯系。給定一個連接兩各類的關聯,可以從一個類的對象導航到另一個類的對象。
      一般把關聯畫為連接相同或者不同的類一條實線。關聯可以有方向,即導航。一般不作說明的時候,導航是雙向的,不需要在線上標出箭頭。大部分情況下導航是單向的,可以加一個箭頭表示。

      關聯一般采取全局變量的方式來實現,如以下代碼


    internalclass Employee
    {
    publicvoid DoWork()
    {

    }
    }

    class Association
    {
    private Employee myEmployee;

    public Employee MyEmployee
    {
    get
    {
    return myEmployee;
    }
    set
    {
    myEmployee
    = value;
    }
    }

    publicvoid DoSomething()
    {
    myEmployee.DoWork();
    }
    }
    Association類關聯Employee類。

      依賴和關聯都是一個類中使用了另一個類,那它們有什么區別呢?

      依賴和關聯都是兩個或多個相對獨立的類之間的關系。當一個對象負責構造另一個對象的實例,或者依賴另一個對象的服務時,這兩個對象之間主要體現 為依賴關系;當一個對象的實例與另一個對象的一些特定實例存在固定的對應關系時,這兩個對象之間為關聯關系。依賴關系表現在局部變量,方法的參數,以及對 靜態方法的調用;關聯關系是使用實例變量來實現。

      泛化就是面向對象中的繼承。它表示類與類之間的繼承關系,接口與接口之間的繼承關系,或類對接口的實現關系。一般化的關系是從子類指向父類的,與繼承或實現的方法相反。

      代碼如下


    internalclass Father
    {
    }
    internalclass Child : Father
    {
    }
    class Generalization
    {
    publicvoid Test()
    {
    Father father
    =new Child();
    }
    }

      當對象A被加入到對象B中,成為對象B的組成部分時,對象B和對象A之間為聚合關系。聚合是關聯關系的一種,是較強的關聯關系,強調的是整體與部分之間的關系。

      與關聯關系一樣,聚合關系也是通過實例變量來實現這樣關系的。關聯關系和聚合關系來語法上是沒辦法區分的,從語義上才能更好的區分兩者的區別。

      聚合用帶一個空心菱形(整體的一端)的實線表示。

      聚合與關聯的區別:關聯關系所涉及的兩個對象是處在同一個層次上的。比如人和自行車就是一種關聯關系,而不是聚合關系,因為人不是由自行車組成的。

      組合是一種特殊的聚合關系,它是一種強類型的聚合,組合中的部分不能脫離整體而獨立存在。例如Windows的窗口和窗口上的菜單就是組合關 系。組合中的整體和部分的生命周期一致,即部分必須在組合創建的同時或者之后創建,在組合銷毀之前或者同時銷毀,部分的生命周期不會超出組合的生命周期。

      組合是用帶實心菱形(整體的一端)的實線來表示。

      組合與聚合的區別:

    • 生命周期的實現上,組成需要負責其部分的創建和銷毀,聚合不需要
    • 組合中的一個對象在同一時刻只能屬于一個組成對象,而聚合的一個部分對象可以被多個整體對象聚合,例如一個學生可以在多個學校就讀,而一個菜單在同一時刻只能是某個窗口內的對象。

    posted on 2009-04-02 17:02 聽風 閱讀(256) 評論(0)  編輯  收藏 所屬分類: 其他


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲AⅤ永久无码精品AA| 日韩a级毛片免费观看| 久久99国产亚洲高清观看首页| 美女免费视频一区二区| 国产福利免费在线观看| 亚洲综合无码一区二区痴汉 | 亚洲国产精品18久久久久久| 一本岛高清v不卡免费一三区| 91亚洲精品麻豆| 毛片免费全部免费观看| 亚洲AV无码国产剧情| 免费一区二区三区四区五区| 国产高清视频免费在线观看| 久久国产精品亚洲综合| 日本免费网站视频www区| 亚洲精品无码成人| 国产jizzjizz视频全部免费| 日日狠狠久久偷偷色综合免费 | 亚洲电影中文字幕| 2019中文字幕在线电影免费| 亚洲国产系列一区二区三区| 免费在线视频一区| 任你躁在线精品免费| 亚洲国产中文在线二区三区免| 免费看大美女大黄大色| 成人免费夜片在线观看| 亚洲日本在线看片| 午夜精品在线免费观看| 中文字幕在线观看免费| 亚洲理论片中文字幕电影| 在线观看91精品国产不卡免费| www.av在线免费观看| 亚洲欧洲自拍拍偷午夜色| 免费国产成人午夜私人影视| 色播在线永久免费视频网站| 学生妹亚洲一区二区| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲高清视频免费| 成人免费在线观看网站| 国产黄在线观看免费观看不卡| 亚洲精品美女视频|