1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        UML 各類關系介紹

        共 1914字,需瀏覽 4分鐘

         ·

        2021-11-11 23:45

        繼承關系(generalization)

        繼承關系用一條帶空心箭頭的直線表示。如下圖所示(A繼承自B):

        繼承指的是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,并可以增加它自己的新功能的能力。繼承關系為is-a的關系,是類與類或者接口與接口之間最常見的關系之一,在Java中此類關系通過關鍵字extends來表示。

        注意:表現在代碼中,繼承關系表現為一個類繼承另一個類或者一個接口繼承另一個接口。

        實現關系(realization)

        實現關系是用一條帶空心箭頭的虛線表示。如下圖所示(A實現B)::

        實現指的是一個class類實現interface接口(可以是多個)的功能。實現是類與接口之間最常見的關系之一,在Java中此類關系通過關鍵字implements來表示。

        注意:表現在代碼中,實現關系表現為普通類實現某個接口

        關聯關系(association)

        關聯關系是用一條可能會有方向的直線表示的。關聯關系默認不強調方向,表示對象間相互知道;如果特別強調方向,如上圖,表示A關聯B,但B不關聯A;如下圖所示:

        關聯關系體現的是兩個類、或者類與接口之間語義級別的一種強依賴的結構關系,是一種長期的靜態(tài)穩(wěn)定的關系,通常與運行狀態(tài)無關,一般由常識等因素決定的。

        例如:乘車人和車票之間就是一種關聯關系。

        注意:表現在代碼中,被關聯類以類屬性的形式出現在關聯類中,也可能是關聯類引用了一個類型為被關聯類的全局變量。

        聚合關系(aggregation)

        聚合關系用一條帶空心菱形箭頭的直線表示,如下圖所示A聚合到B,或者說B由A組成。

        聚合關系用于表示實體對象之間的關系,表示整體由部分構成的意思。聚合是關聯關系的一種特例,它體現的是整體與部分、擁有的關系,即has-a的關系,此時整體與部分之間是可分離的,他們可以具有各自的生命周期,部分可以屬于多個整體對象,也可以為多個整體對象共享。例如一個部門由多個員工組成。

        注意:表現在代碼中,和關聯關系是一致的,只能從語義級別來區(qū)分。聚合與組合不同的是,整體和部分不是強依賴的,即使整體不存在了,部分仍然存在;例如,部門撤銷了,人員不會消失,他們依然存在。

        組合關系(composition)

        組合關系用一條帶實心菱形箭頭的直線表示,如下圖表示A組成B,或者B由A組成。

        組合關系同樣表示整體由部分組成的意思。與聚合關系一樣,組合也是關聯關系的一種特例,它體現的是一種整體與部分不可分割的關系,即contains-a的關系,這種關系比聚合更強,也稱為強聚合。例如公司由多個部門組成組合,但此時整體與部分是不可分離的,整體的生命周期結束也就意味著部分的生命周期結束。

        注意:表現在代碼中,和關聯關系是一致的,只能從語義級別來區(qū)分。組合關系是一種強依賴的特殊聚合關系,如果整體不存在了,則部分也就不存在了。例如,公司不存在了,部門也將不存在了。

        依賴關系(dependency)

        依賴關系是用一套帶箭頭的虛線表示的;如下圖表示A依賴于B;他描述一個對象在運行期間會用到另一個對象的關系。

        依賴關系是一個類A使用到了另一個類B,而這種使用關系是具有偶然性的、臨時性的、非常弱的,但是B類的變化會影響到A,與關聯關系不同的是,它是一種臨時性的關系,通常在運行期間產生,并且隨著運行時的變化依賴關系也可能發(fā)生變化。

        顯然,依賴也有方向,雙向依賴是一種非常糟糕的結構,我們總是應該保持單向依賴,杜絕雙向依賴的產生。

        注意:表現在代碼中,依賴關系體現為類的構造方法及類方法的傳入參數。

        UML類關系圖示例

        請看以下這個UML類關系圖:

        • 開車的類圖結構表示的是一個接口

        • 有一個自行車的抽象類,實現了開車的接口,它們之間的關系為實現關系,使用帶空心三角箭頭的虛線表示

        • 自行車與摩拜單車之間是繼承關系,使用帶空心三角箭頭的實線表示

        • 學生上學需要用到摩拜單車,與摩拜單車是一種依賴關系,使用帶箭頭的虛線表示

        • 學生與身份證之間為關聯關系,使用一根實線表示,如果兩個類之間互相通過屬性引用,則是雙向關聯關系

        • 學生與班級、學生與學校之間是聚合關系,使用帶空心菱形箭頭的實線表示

        • 學校與班級是組合關系,使用帶實心菱形箭頭的實線表示


        source:?//bigjun2017.github.io/2018/10/22/ruan-jian-she-ji/uml-ge-lei-guan-xi-jie-shao

        喜歡,在看


        瀏覽 46
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            美女扒开胸罩免费视频网 | 浪货跪趴开荤肉欲H文视频 | 中文字幕日韩在线 | 成人交性视频免费看 | 人妻视频网站 | 青青草无码 | 久久国语 | 免费观看成人A片 | 扒开小舞狂揉难受 | 久久久久久9999 |