Java設計模式及實踐》—1.4 統一建模語言簡介

      網友投稿 830 2025-03-31

      1.4 統一建模語言簡介


      統一建模語言(Unified Modeling Language,UML)可以幫助我們表示軟件的結構:不同的模塊、類和對象如何相互交互,以及它們之間的關系是什么。

      UML經常與面向對象的設計結合使用,但它具有更廣泛的適用范圍。然而這超出了本書的范圍,因此,下面我們將重點介紹與本書相關的UML功能。

      在UML中,我們可以定義系統的結構和行為,并且可以通過圖表可視化全部或者部分模型。有兩種類型的圖表:

      結構圖用于表示系統的結構。有許多類型的結構圖,但我們只討論類圖。對象圖、包圖和組件圖均類似于類圖。

      行為圖用于描述系統的行為。交互圖是行為圖的子集,用于描述系統的不同組件之間的控制流和數據流。在行為圖中,順序圖廣泛用于面向對象的設計中。

      類圖是面向對象設計和開發階段中使用最多的圖類型。類圖是一種結構圖,用于說明類的結構及類之間的關系。如圖1-1所示。

      類圖對于描述類在應用程序中的結構非常有用。大多數時候,僅僅查看結構就足以了解類如何交互,但有時這還不夠。對于這些情況,我們可以使用行為圖和交互圖,其中順序圖用于描述類和對象的交互。讓我們使用順序圖來顯示Car對象和Vehicle對象如何在繼承和多態示例中進行交互,如圖1-2所示。

      類之間的關系

      在面向對象編程中,除了代表基本概念的繼承關系之外,還有一些其他類關系可以幫助我們建模和開發復雜的軟件系統:

      泛化和實現

      依賴

      關聯、聚合和組合

      圖 1-2

      1.泛化

      繼承也被稱為Is-A關系,因為從另一個類繼承而來的類能夠被當成父類來使用。

      當一個類表示多個類的共享特征時,這稱為泛化,例如,Vehicle是Bike、Car和Truck的泛化。類似地,當一個類表示一般類的特殊實例時,這稱為特化,因此Car是Vehicle的特化,如圖1-3所示。

      在UML術語中,描述繼承的關系稱為泛化。

      2.實現

      如果說泛化是面向對象中繼承概念對應的UML中的術語,則UML中的實現表示面向對象編程中類的接口實現。

      我們假設創建了一個名為Lockable的接口,該接口僅由可以鎖定的Vehicle實現。在這種情況下,為Car類實現Lockable的圖1-3將如圖1-4所示。

      3.依賴

      依賴是最通用的UML關系類型之一。它用于定義一個類以某種方式依賴于另一個類,而另一個類可能依賴于或不依賴于第一個類。依賴關系有時被稱為Uses-A關系。

      通常,在面向對象的編程語言中,依賴關系用于描述一個類在方法的聲明中是否包含第二個類的參數,或者說它只是通過方法將第二個類傳遞給其他類,而不是使用方法來創建第二個類的實例。如圖1-5所示。

      圖 1-4? ????????????????????????????????????????????圖 1-5

      4.關聯

      關聯表示兩個實體之間的關系。有兩種類型的關聯:組合和聚合。通常,關聯關系由箭頭表示,如圖1-6所示。

      《Java設計模式及實踐》—1.4 統一建模語言簡介

      5.聚合

      聚合是一種特殊類型的關聯。如果將繼承看作Is-A關系,則可以將聚合視為Has-A關系。

      聚合用于描述以下情況中兩個或多個類之間的關系:一個類在邏輯上包含另一個類,但所包含的類的實例又可以獨立于第一個類在其上下文之外生存,或者可以被其他的類所引用。例如,部門與教師間存在Has-A關系,每位教師必須屬于部門,但如果部門不再存在,教師仍然可以處于活動狀態,如圖1-7所示。

      圖 1-6????????????????????????????????????????? 圖 1-7

      6.組合

      顧名思義,一個類是另一個類的組成部分就稱兩者間存在組合關系。這有點類似于聚合,不同之處在于當主類不再存在時,依賴類不再存在。例如,房子(House)由房間(Room)組成,但如果房子被銷毀,房間就不再存在,如圖1-8所示。

      實際上,尤其是在具有垃圾回收器的Java等語言中,組合和聚合之間的界限并不是很清晰。對象不必手動銷毀,當它們不再被引用時,它們會被垃圾回收器自動銷毀。因此,從編碼的角度來看,我們不需要真正關心處理的是組合還是聚合關系,但是如果我們想要在UML中有一個定義良好的模型,考慮這一點就很重要了。

      Java UML

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Vloop 無效引用(vlookup公式)
      下一篇:如何實現wps表格中空行的隔行輸入(wps怎么隔行刪除空白行)
      相關文章
      亚洲AV色无码乱码在线观看| 久久久久久亚洲精品成人| 亚洲久本草在线中文字幕| 不卡一卡二卡三亚洲| 亚洲人成人无码网www国产| 亚洲国产区男人本色| 亚洲色成人网站WWW永久四虎| 亚洲成a人片在线观看播放| 亚洲美女视频一区二区三区| 99久久精品国产亚洲| 91大神亚洲影视在线| 亚洲图片一区二区| 亚洲精品视频在线播放| 亚洲综合色丁香麻豆| 亚洲日产2021三区| 亚洲一区中文字幕在线电影网| 亚洲国产成人综合| 丁香婷婷亚洲六月综合色| 亚洲精品456人成在线| 亚洲精品亚洲人成在线| 亚洲av成本人无码网站| 亚洲AV之男人的天堂| 亚洲一级特黄大片在线观看| 国产亚洲老熟女视频| 国产亚洲人成无码网在线观看| 亚洲爆乳无码一区二区三区| 亚洲免费视频网站| 亚洲国产模特在线播放| 亚洲色偷偷色噜噜狠狠99网| 99亚洲乱人伦aⅴ精品| 亚洲精品和日本精品| 人人狠狠综合久久亚洲婷婷| 亚洲人成亚洲精品| 亚洲免费闲人蜜桃| 亚洲第一第二第三第四第五第六| 国产精品亚洲专区无码不卡| 久久久久亚洲AV成人网| 久久综合九九亚洲一区| 亚洲白色白色在线播放| 亚洲中文无码卡通动漫野外| 国产精品亚洲综合天堂夜夜|