類別圖- 維基百科,自由的百科全書 - Wikipedia

文章推薦指數: 80 %
投票人數:10人

類別圖是軟件工程的統一建模語言一種靜態結構圖,該圖描述了系統的類別集合,類別的屬性和類別之間的關係。

UML 2.0 Diagrams ... 類別圖 語言 監視 編輯 類別圖是軟件工程的統一建模語言一種靜態結構圖,該圖描述了系統的類別集合,類別的屬性和類別之間的關係。

UML2.0Diagrams 目次 1概述 2成員 3關係 3.1實例層級的關係 3.1.1外部連結 3.1.2泛化 3.1.3實現 3.1.4依賴 3.1.5關聯 3.1.6聚合 3.1.7組成 3.1.8關聯、組成和聚集之差異 3.2類別層級的關係 3.2.1概括 3.2.2實現 3.3一般關係 3.3.1依賴 3.3.2多重 4參考文獻 5外部連結 概述編輯 類別圖是物件導向式的建模。

他們一般都被用於概念建模(conceptualmodelling)的系統分類的應用程序,並可將模型建模轉譯成程式碼。

 一個類別有三個區域 最上面是類別名稱 中間部分包含類別的屬性 底部部分包含類別的方法為了進一步描述系統的行為,這些類圖可以輔之以狀態圖或UML狀態機。

成員編輯 UML提供機制,以代表類的成員,如屬性和方法,對他們的其他信息。

指定一個類成員(即任何屬性或方法)的可見性有下列符號,必須擺在各成員的名字之前: +公共 -私有 #保護(即對子類可見) ~包(即對包内其他成員可見) 關係編輯   實例層級的關係編輯 外部連結編輯 外部連結(Externallinks)是物件之間的基本關係。

泛化編輯 泛化(Generalization),即繼承的反方向,指的是一個類(稱為父類、父接口)具有另外的一個(或一些)類(稱為子類、子接口)的共有功能。

子類可視為其父類的特例,並可以增加新功能。

用帶空心三角形箭頭的實線表示。

實現編輯 實現(Realization)指的是一個class類實現interface接口(可以是多個)的功能;在Java中此類關係通過關鍵字implements明確標識。

用帶空心三角形箭頭的虛線表示。

依賴編輯 依賴關係(Dependency)可以簡單的理解為一個類A使用到了另一個類B,"...usesa...",被依賴的對象只是作為一種工具在使用,而並不持有對它的引用。

而這種使用關係是具有偶然性、臨時性的、非常弱的,但是B類的變化會影響到A;表現在代碼層面,為類B作為參數被類A在某個method(方法)中使用。

用帶燕尾箭頭的虛線表示。

表示一個類依賴於另外一個類的定義;依賴關係僅僅描述了類與類之間的一種使用與被使用的關係。

關聯編輯  人與雜誌是一種關聯 一個關聯(Association)代表一個家族的聯繫。

關聯可以命名,可以飾以角色名稱,有權指標,多重性,可視性,以及其他屬性(如相互關聯和有方向的(帶燕尾箭頭的實線表示)關聯)。

在語義上是兩個類之間、或類與接口之間一種強依賴關係,是一種長期的穩定的關係,"...hasa..."。

關聯關係使一個類知道另外一個類的屬性和方法;通常含有「知道」、「了解」的含義。

某個對象會長期的持有另一個對象的引用,關聯的兩個對象彼此間沒有任何強制性的約束,只要二者同意,可以隨時解除關係或是進行關聯,它們在生命期問題上沒有任何約定。

被關聯的對象還可以再被別的對象關聯,所以關聯是可以共享的。

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

目前定義有五種不同類型的關聯。

雙向(Bi-directional)和單向(uni-directional)的關聯是最常見的。

 ClassdiagramshowingAggregationbetweentwoclasses 聚合編輯 聚合(Aggregate)是表示整體與部分的一類特殊的關聯關係,是「弱」的包含("...ownsa...")關係,成分類別可以不依靠聚合類別而單獨存在,可以具有各自的生命周期,部分可以屬於多個整體對象,也可以為多個整體對象共享(sharable)。

例如,池塘與(池塘中的)鴨子。

再例如教授與課程就是一種聚合關係。

又例如圖書館包含(ownsa)學生和書籍。

即使沒有圖書館,學生亦可以存在,學生和圖書館之間的關係是聚集。

聚集可能不涉及兩個以上的類別。

圖形以空心的菱形箭尾與實線來表示。

//Aggregation classPond { private: std::vectorducks; }; 組成編輯 組成(Composition)關係,是一類「強」的整體與部分的包含關係("...isapartof...")。

成分類別必須依靠合成類別而存在。

整體與部分是不可分的,整體的生命周期結束也就意味着部分的生命周期結束。

合成類別完全擁有成分類別,負責創建、銷毀成分類別。

例如汽車與化油器,又例如公司與公司部門就是一種組成關係。

圖形以實心的菱形箭尾與實線表示。

//Composition classCar { private: //Caristheownerofcarburetor. //CarburetoriscreatedwhenCariscreated, //itisdestroyedwhenCarisdestroyed. Carburetorcarb; }; 關聯、組成和聚集之差異編輯 當一個類作為另一個類某個方法的參數時,為關聯。

[需要較佳來源]兩者的差別主要描述了子類的生命周期的不同。

組合關係中,一旦父類被銷毀子類也會隨之銷毀;聚合關係中,子類的生命周期與父類獨立。

[1]例如,一個大學包含若干個系(如化學系),每個系由若干名教授。

如果大學撤銷,這些系也就不復存在了,但這些教授仍會繼續存在。

還需注意,一名教授可以在不同系甚至不同學校兼職,而一個系不能屬於兩所大學。

所以,大學與系之間是組成關係,而系與教授是聚合關係。

  類別層級的關係編輯 概括編輯 概括(Generalization),是指類別與類別之間的共通性,通常會具有繼承(inherit)的關係。

圖形以實線和空心箭頭來表示。

實現編輯 UML建模時,一個實現(realization)關係是兩個模型元素之間的關係,其中一個模型元素(客戶端)實現的行為,其他模型元素(供應商)指定。

圖形以虛線和空心箭頭來表示。

一般關係編輯 依賴編輯  "Car"與"Wheel"是一種弱化的依賴 依賴(Dependency)是一種弱化形式的關係,表示一類別依賴於另外的類別,因為類別在某個時間點使用另一個類別。

多重編輯 關聯多重性(Multiplicity)是用來定義參與物件數量,每個參與類別都必須指定多重性值,例如classA會有多少個instance與classB的多少個instance關連在一起,在現實生活中,一個汽車駕駛與汽車個數就是多重關係,可以是一對多,或是多對多。

參考文獻編輯 ^UML基础:类图.[2012-02-20].(原始內容存檔於2016-03-04).  外部連結編輯 IntroductiontoUML2ClassDiagrams(頁面存檔備份,存於網際網路檔案館) UML2ClassDiagramGuidelines(頁面存檔備份,存於網際網路檔案館) IBMClassdiagramIntroduction(頁面存檔備份,存於網際網路檔案館) OMGUML2.2specificationdocuments(頁面存檔備份,存於網際網路檔案館) 取自「https://zh.wikipedia.org/w/index.php?title=類別圖&oldid=71012277」



請為這篇文章評分?