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

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

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

    隨筆-9  評論-168  文章-266  trackbacks-0

    UML中描述對象和類之間相互關系的方式包括:依賴(Dependency),關聯(Association),聚合(Aggregation),組合(Composition),泛化(Generalization),實現(Realization)等。

    依賴 (Dependency):元素A的變化會影響元素B,但反之不成立,那么B和A的關系是依賴關系,B依賴A;類屬關系和實現關系在語義上講也是依賴關 系,但由于其有更特殊的用途,所以被單獨描述。uml中用帶箭頭的虛線表示Dependency關系,箭頭指向被依賴元素。

    泛化(Generalization):通常所說的繼承(特殊個體 is kind of 一般個體)關系,不必多解釋了。uml中用帶空心箭頭的實線線表示Generalization關系,箭頭指向一般個體。

    實現(Realize):元素A定義一個約定,元素B實現這個約定,則B和A的關系是Realize,B realize A。這個關系最常用于接口。uml中用空心空心箭頭和虛線表示Realize關系,箭頭指向定義約定的元素。

    關聯(Association):元素間的結構化關系,是一種弱關系,被關聯的元素間通常可以被獨立的考慮。uml中用實線表示Association關系,箭頭指向被依賴元素。

    聚合(Aggregation):關聯關系的一種特例,表示部分和整體(整體 has a 部分)的關系。uml中用帶空心菱形頭的實線表示Aggregation關系,菱形頭指向整體。

    組 合(Composition):組合是聚合關系的變種,表示元素間更強的組合關系。如果是組合關系,如果整體被破壞則個體一定會被破壞,而聚合的個體則可 能是被多個整體所共享的,不一定會隨著某個整體的破壞而被破壞。uml中用帶實心菱形頭的實線表示Composition關系,菱形頭指向整體。

    其中依賴(Dependency)的關系最弱,而關聯(Association),聚合(Aggregation),組合(Composition)表示的關系依次增強。換言之關聯,聚合,組合都是依賴關系的一種,聚合是表明對象之間的整體與部分關系的關聯,而組合是表明整體與部分之間有相同生命周期關系的聚合。

    而關聯與依賴的關系用一句話概括下來就是,依賴描述了對象之間的調用關系,而關聯描述了對象之間的結構關系。

    后面的例子將針對某個具體目的來獨立地展示各種關系。雖然語法無誤,但這些例子可進一步精煉,在它們的有效范圍內包括更多的語義。

    依賴(Dependency)

    實體之間一個“使用”關系暗示一個實體的規范發生變化后,可能影響依賴于它的其他實例(圖D)。 更具體地說,它可轉換為對不在實例作用域內的一個類或對象的任何類型的引用。其中包括一個局部變量,對通過方法調用而獲得的一個對象的引用(如下例所 示),或者對一個類的靜態方法的引用(同時不存在那個類的一個實例)。也可利用“依賴”來表示包和包之間的關系。由于包中含有類,所以你可根據那些包中的 各個類之間的關系,表示出包和包的關系。

    圖D


    關聯(Association)

    實體之間的一個結構化關系表明對象是相互連接的。箭頭是可選的,它用于指定導航能力。如果沒有箭頭,暗示是一種雙向的導航能力。在Java中,關聯(圖E) 轉換為一個實例作用域的變量,就像圖E的“Java”區域所展示的代碼那樣。可為一個關聯附加其他修飾符。多重性(Multiplicity)修飾符暗示 著實例之間的關系。在示范代碼中,Employee可以有0個或更多的TimeCard對象。但是,每個TimeCard只從屬于單獨一個 Employee。

    圖E

    聚合(Aggregation)

    聚合(圖F)是關聯的一種形式,代表兩個類之間的整體/局部關系。聚合暗示著整體在概念上處于比局部更高的一個級別,而關聯暗示兩個類在概念上位于相同的級別。聚合也轉換成Java中的一個實例作用域變量。

    關聯和聚合的區別純粹是概念上的,而且嚴格反映在語義上。聚合還暗示著實例圖中不存在回路。換言之,只能是一種單向關系。

    圖F



    合成(Composition)

    合成 (圖G) 是聚合的一種特殊形式,暗示“局部”在“整體”內部的生存期職責。合成也是非共享的。所以,雖然局部不一定要隨整體的銷毀而被銷毀,但整體要么負責保持局 部的存活狀態,要么負責將其銷毀。局部不可與其他整體共享。但是,整體可將所有權轉交給另一個對象,后者隨即將承擔生存期職責。

    Employee和TimeCard的關系或許更適合表示成“合成”,而不是表示成“關聯”。

    圖G

    泛化(Generalization)

    泛化(圖H)表示一個更泛化的元素和一個更具體的元素之間的關系。泛化是用于對繼承進行建模的UML元素。在Java中,用extends關鍵字來直接表示這種關系。

    圖H


    實現(Realization)

    實例(圖I)關系指定兩個實體之間的一個合同。換言之,一個實體定義一個合同,而另一個實體保證履行該合同。對Java應用程序進行建模時,實現關系可直接用implements關鍵字來表示。

    圖I




    轉自:http://blog.csdn.net/kingofbirdzjy/article/details/1967871 

    主站蜘蛛池模板: 无码A级毛片免费视频内谢| 亚洲国产精品一区二区三区在线观看| 猫咪免费人成在线网站| 亚洲伊人久久大香线蕉综合图片| 性xxxx视频免费播放直播| 亚洲人成色77777在线观看| 亚洲国产精久久久久久久| 国产成人免费一区二区三区| 久久久99精品免费观看| 尤物视频在线免费观看| 拔擦拔擦8x华人免费久久| 久久综合国产乱子伦精品免费| 亚洲国产第一页www| 亚洲精品视频在线观看你懂的 | 国产精品极品美女免费观看| 99精品热线在线观看免费视频| 久久er国产精品免费观看8| 亚洲女女女同性video| 亚洲人6666成人观看| 亚洲精品影院久久久久久| 久久亚洲美女精品国产精品| 国产亚洲高清不卡在线观看| 亚洲国产综合精品中文字幕| 亚洲精品成人a在线观看| 亚洲国产成人a精品不卡在线| 国产精品成人69XXX免费视频| 蜜芽亚洲av无码一区二区三区| 亚洲情XO亚洲色XO无码| 亚洲国产精品高清久久久| 一个人看www在线高清免费看| 在线观看免费视频网站色| 国产精品极品美女自在线观看免费| 黄网站在线播放视频免费观看| 免费人成大片在线观看播放电影| 国产成人高清亚洲一区久久| 一级毛片aa高清免费观看| 免费国产99久久久香蕉| 无码少妇一区二区浪潮免费| 亚洲高清无码综合性爱视频| 亚洲av无码一区二区三区网站| 亚洲18在线天美|