chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UML類圖符號等詳細(xì)介紹

jf_78858299 ? 來源:CSDN ? 作者:duanxz ? 2023-05-05 10:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

  • 依賴 Dependency :元素A的變化會影響元素B,但反之不成立,那么B和A的關(guān)系是依賴關(guān)系,B依賴A;類屬關(guān)系和實(shí)現(xiàn)關(guān)系在語義上講也是依賴關(guān)系,但由于其有更特殊的用途,所以被單獨(dú)描述。uml中用帶箭頭的虛線表示Dependency關(guān)系,箭頭指向被依賴元素。
  • 泛化( Generalization :通常所說的繼承(特殊個體 is kind of 一般個體)關(guān)系,不必多解釋了。uml中用帶空心箭頭的實(shí)線線表示Generalization關(guān)系,箭頭指向一般個體。
  • 實(shí)現(xiàn)( Realize :元素A定義一個約定,元素B實(shí)現(xiàn)這個約定,則B和A的關(guān)系是Realize,B realize A。這個關(guān)系最常用于接口。uml中用空心箭頭和虛線表示Realize關(guān)系,箭頭指向定義約定的元素。
  • 關(guān)聯(lián)( Association :元素間的結(jié)構(gòu)化關(guān)系,是一種弱關(guān)系,被關(guān)聯(lián)的元素間通??梢员华?dú)立的考慮。uml中用實(shí)線表示Association關(guān)系,箭頭指向被依賴元素。
  • 聚合( Aggregation :關(guān)聯(lián)關(guān)系的一種特例,表示部分和整體(整體 has a 部分)的關(guān)系。uml中用帶空心菱形頭的實(shí)線表示Aggregation關(guān)系,菱形頭指向整體。
  • 組合( Composition :組合是聚合關(guān)系的變種,表示元素間更強(qiáng)的組合關(guān)系。如果是組合關(guān)系,如果整體被破壞則個體一定會被破壞,而聚合的個體則可能是被多個整體所共享的,不一定會隨著某個整體的破壞而被破壞。uml中用帶實(shí)心菱形頭的實(shí)線表示Composition關(guān)系,菱形頭指向整體。

1.1.1 依賴(Dependency):虛線箭頭表示

1、依賴關(guān)系也是類與類之間的聯(lián)結(jié) 2、依賴總是單向的。(#add 注意,要避免雙向依賴。一般來說,不應(yīng)該存在雙向依賴。) 3、依賴關(guān)系在 JavaC++ 語言中體現(xiàn)為局部變量、方法的參數(shù)或者對靜態(tài)方法的調(diào)用。

(軟件開發(fā)中,往往會設(shè)計一些公用類,供別的類調(diào)用,如果這些公用類出問題了,那調(diào)用這些公用類的類都會因此而出問題。兩個元素之間的一種關(guān)系,其中一個元素(提供者)的變化將影響另一個元素(客體),或向它提供所需信息 顯示一個類引用另一個類)

方法參數(shù)示例:

public class Person
{
    void buy(Car car)
   {
       ...
    }
}

圖片

表示方法:虛線加箭頭

特點(diǎn):當(dāng)類與類之間有使用關(guān)系時就屬于依賴關(guān)系,不同于關(guān)聯(lián)關(guān)系,依賴不具有“擁有關(guān)系”,而是一種“相識關(guān)系”,只在某個特定地方(比如某個方法體內(nèi))才有關(guān)系。

依賴關(guān)系可以分為以下四類:

1) 使用依賴(Usage)表示客戶使用提供者提供的服務(wù)以實(shí)現(xiàn)它的行為,包括:

  • 使用<>--聲明使用一個類時需要用到已存在的另一個類。
  • 調(diào)用<>--聲明一個類調(diào)用其他類的操作的方法。
  • 參數(shù)<>--聲明一個操作和它的參數(shù)之間的關(guān)系。
  • 發(fā)送<>--聲明信號發(fā)送者和信號接收者之間的關(guān)系。
  • 實(shí)例化<>--聲明用一個類的方法創(chuàng)建了另一個類的實(shí)例。

2) 抽象依賴(Abstraction)表示客戶與提供者之間用不同的方法表現(xiàn)同一個概念,通常一個概念更抽象,一個概念更具體。包括:

  • 跟蹤<>--聲明不同模型中的元素之間存在一些連接但不如映射精確。
  • 精化<>--聲明具有兩個不同語義層次上的元素之間的映射。
  • 派生<>--聲明一個實(shí)例可以從另一個實(shí)例導(dǎo)出。

3) 授權(quán)依賴(Permission)表達(dá)提供者為客戶提供某種權(quán)限以訪問其內(nèi)容的情形。包括:

  • 訪問<>--允許一個包訪問另一個包的內(nèi)容。
  • 導(dǎo)入<>--允許一個包訪問另一個包的內(nèi)容并為被訪問包的組成部分增加別名。
  • 友元<>--允許一個元素訪問另一個元素,不管被訪問的元素是否具有可見性。

4) 綁定依賴(Binding)較高級的依賴類型,用于綁定模板以創(chuàng)建新的模型元素,包括:

  • 綁定<>--為模板參數(shù)指定值,以生成一個新的模型元素。

1.1.2 關(guān)聯(lián)(Association):實(shí)線箭頭表示

1、關(guān)聯(lián)關(guān)系是類與類之間的聯(lián)結(jié),它使一個類知道另一個類的屬性和方法。2、關(guān)聯(lián)可以是雙向的,也可以是單向的(#add還有自身關(guān)聯(lián))。雙向的關(guān)聯(lián)可以有兩個箭頭或者沒有箭頭,單向的關(guān)聯(lián)有一個箭頭。3、在 Java 或 c++ 中,關(guān)聯(lián)關(guān)系是通過使用成員變量來實(shí)現(xiàn)的。

public class 徒弟
{  

}

public class 唐僧
{
     protected: list<徒弟> tdlist;
}

圖片

表示方法:實(shí)線箭頭

特征:表示類與類或類與接口之間的依賴關(guān)系,表現(xiàn)為“擁有關(guān)系”;具體到代碼可以用實(shí)例變量來表示。(A類有一個成員變量保存的是B類的一個引用,也就是說由A類可以找到B類)

1.1.3 聚合(Aggregation):帶空心菱形頭表示

1、聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強(qiáng)的關(guān)聯(lián)關(guān)系。2、聚合是整體和部分之間的關(guān)系,例如汽車由引擎、輪胎以及其它零件組成。3、聚合關(guān)系也是通過成員變量來實(shí)現(xiàn)的。但是,關(guān)聯(lián)關(guān)系所涉及的兩個類處在同一個層次上,而聚合關(guān)系中,兩個類處于不同的層次上,一個代表整體,一個代表部分。4、關(guān)聯(lián)與聚合僅僅從 Java 或 C++ 語法上是無法分辨的,必須考察所涉及的類之間的邏輯關(guān)系。

public class 引擎
 {

 }
public class 輪胎
 {

 }
public class 汽車
{
        protected:引擎 engine;
        protected:輪胎 tyre[4];
}

圖片

表示方法:空心菱形頭

特征:屬于是關(guān)聯(lián)的特殊情況,體現(xiàn)部分-整體關(guān)系,是一種弱擁有關(guān)系;整體和部分可以有不一樣的生命周期;是一種弱關(guān)聯(lián);

1.1.4 組合(Composition):帶實(shí)心菱形頭的實(shí)線表示

1、合成關(guān)系是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系還要強(qiáng)的關(guān)系。2、它要求普通的聚合關(guān)系中代表整體的對象負(fù)責(zé)代表部分的對象的生命周期。

class{
 }
 class{
        protected:  肢   limb[4];
 }

圖片

表示方法:一般是實(shí)心菱形加實(shí)線箭頭表示

特征:屬于是關(guān)聯(lián)的特殊情況,也體現(xiàn)了體現(xiàn)部分-整體關(guān)系,是一種強(qiáng)“擁有關(guān)系”;整體與部分有相同的生命周期,是一種強(qiáng)關(guān)聯(lián);

1.1.5 泛化(Generalization):

帶空心箭頭的實(shí)線線表示

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

泛化關(guān)系表示類與類之間的繼承關(guān)系,接口與接口之間的繼承關(guān)系。如下圖:

圖片

img

1.1.6 實(shí)現(xiàn)(Realization):空心箭頭和虛線表示

實(shí)例( 圖I )關(guān)系指定兩個實(shí)體之間的一個合同。換言之,一個實(shí)體定義一個合同,而另一個實(shí)體保證履行該合同。對Java應(yīng)用程序進(jìn)行建模時,實(shí)現(xiàn)關(guān)系可直接用implements關(guān)鍵字來表示。表達(dá)一種說明元素與實(shí)現(xiàn)元素之間的關(guān)系;

圖片

圖I

二、相互之間的區(qū)別

1.聚合與組合

(1)聚合與組合都是一種結(jié)合關(guān)系,只是額外具有整體-部分的意涵。

(2)部件的生命周期不同

聚合關(guān)系中,整件不會擁有部件的生命周期,所以整件刪除時,部件不會被刪除。再者,多個整件可以共享同一個部件。組合關(guān)系中,整件擁有部件的生命周期,所以整件刪除時,部件一定會跟著刪除。而且,多個整件不可以同時間共享同一個部件。

(3)聚合關(guān)系是“has-a”關(guān)系,組合關(guān)系是“contains-a”關(guān)系。

圖片

img

  • “弱”包含表示如果部門沒有了,員工也可以繼續(xù)存在;
  • “強(qiáng)”包含表示如果部門沒有了,員工也不再存在;

在做軟件需求時,往往會將所有的包含關(guān)系畫成“弱”包含,后面發(fā)現(xiàn)某些關(guān)系可以表示為“強(qiáng)”包含是,才轉(zhuǎn)為實(shí)心菱形。

2.關(guān)聯(lián)和聚合

(1)表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語義級別來區(qū)分。

(2)關(guān)聯(lián)和聚合的區(qū)別主要在語義上,關(guān)聯(lián)的兩個對象之間一般是平等的,例如你是我的朋友,聚合則一般不是平等的。

(3)關(guān)聯(lián)是一種結(jié)構(gòu)化的關(guān)系,指一種對象和另一種對象有聯(lián)系。

(4)關(guān)聯(lián)和聚合是視問題域而定的,例如在關(guān)心汽車的領(lǐng)域里,輪胎是一定要組合在汽車類中的,因?yàn)樗x開了汽車就沒有意義了。但是在賣輪胎的店鋪業(yè)務(wù)里,就算輪胎離開了汽車,它也是有意義的,這就可以用聚合了。

3.關(guān)聯(lián)和依賴

(1)關(guān)聯(lián)關(guān)系中,體現(xiàn)的是兩個類、或者類與接口之間語義級別的一種強(qiáng)依賴關(guān)系,比如我和我的朋友;這種關(guān)系比依賴更強(qiáng)、不存在依賴關(guān)系的偶然性、關(guān)系也不是臨時性的,一般是長期性的,而且雙方的關(guān)系一般是平等的。

(2)依賴關(guān)系中,可以簡單的理解,就是一個類A使用到了另一個類B,而這種使用關(guān)系是具有偶然性的、臨時性的、非常弱的,但是B類的變化會影響到A。

4.泛化和實(shí)現(xiàn)

實(shí)現(xiàn)表示類對接口的實(shí)現(xiàn)關(guān)系,表示方式:用一條帶有空心三角箭頭的虛線指向接口。

泛化表示類與類之間的繼承關(guān)系、接口與接口之間的繼承關(guān)系,表示方式一條帶有空心三角箭頭的實(shí)線指向基類(父接口)。

5.綜合比較

這幾種關(guān)系都是語義級別的,所以從代碼層面并不能完全區(qū)分各種關(guān)系;但總的來說,后幾種關(guān)系所表現(xiàn)的強(qiáng)弱程度依次為:

組合>聚合>關(guān)聯(lián)>依賴

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

而關(guān)聯(lián)與依賴的關(guān)系用一句話概括下來就是,依賴描述了對象之間的調(diào)用關(guān)系,而關(guān)聯(lián)描述了對象之間的結(jié)構(gòu)關(guān)系。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2989

    瀏覽量

    109530
  • UML
    UML
    +關(guān)注

    關(guān)注

    0

    文章

    122

    瀏覽量

    31189
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2119

    瀏覽量

    75245
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    原理圖符號和PCB封裝有什么不同?

    “ ?原理圖符號及PCB封裝是電子設(shè)計中最基本的要素。本文針對剛踏入電子設(shè)計的新人,介紹了原理圖符號與PCB封裝區(qū)別,以及在KiCad中兩者的對應(yīng)關(guān)系。 ” 什么是原理圖符號? 原理
    的頭像 發(fā)表于 12-04 18:13 ?2360次閱讀
    原理<b class='flag-5'>圖符號</b>和PCB封裝有什么不同?

    cad電路圖符號大全

    cad電路圖符號大全
    發(fā)表于 03-31 09:40 ?3439次下載
    cad電路<b class='flag-5'>圖符號</b>大全

    照明電路圖符號大全

    照明電路圖符號大全
    發(fā)表于 11-01 16:34 ?7w次閱讀
    照明電路<b class='flag-5'>圖符號</b>大全

    電子電路圖符號大全

    電子電路圖符號大全
    發(fā)表于 03-30 15:51 ?1w次閱讀
    電子電路<b class='flag-5'>圖符號</b>大全

    汽車電路圖符號大全

    汽車電路圖符號大全 汽車電路圖是利用圖形符號和文字符號,表示汽車電路
    發(fā)表于 03-30 16:00 ?3.7w次閱讀
    汽車電路<b class='flag-5'>圖符號</b>大全

    電工電路圖符號大全

    電工電路圖符號大全
    發(fā)表于 03-31 10:14 ?3.9w次閱讀
    電工電路<b class='flag-5'>圖符號</b>大全

    數(shù)字電路圖符號解析

    電子發(fā)燒友為大家提供了數(shù)字電路圖符號解析,希望對您有所幫助!像是多種場效應(yīng)管的電路圖符號,電位器符號等等。
    發(fā)表于 07-23 09:49 ?1.4w次閱讀
    數(shù)字電路<b class='flag-5'>圖符號</b>解析

    常用電路圖符號大全

    本文主要介紹了常用電路圖符號大全。匯聚基本的電路圖符號,例如:電池、接地線、二極管,可以滿足基礎(chǔ)電路的繪制需求?;镜碾娐?b class='flag-5'>符號,用于連接各
    發(fā)表于 03-26 13:49 ?98.4w次閱讀
    常用電路<b class='flag-5'>圖符號</b>大全

    基于圖元結(jié)構(gòu)的電氣早圖符號識別

    針對手繪草圖符號不規(guī)則以及模糊的特點(diǎn)造成對其識別難度較高的問題,對手繪電氣草圖符號的特點(diǎn)、符號的筆劃分割、圖元類型的判別、圖元間的結(jié)構(gòu)關(guān)系、符號間相似度的類型等方面進(jìn)行了研究,提出了一
    發(fā)表于 03-01 14:58 ?2次下載

    電子元器件電路圖符號詳細(xì)資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是電子元器件電路圖符號詳細(xì)資料合集免費(fèi)下載。
    發(fā)表于 05-23 08:00 ?39次下載
    電子元器件電路<b class='flag-5'>圖符號</b>的<b class='flag-5'>詳細(xì)</b>資料合集免費(fèi)下載

    電氣接線和電路圖符號大全

    電路圖符號是指用一種書畫圖形代表一種電子元件(比如:電容、電阻、二極管、三極官、集成電路等等)的符號,有了電路圖符號我學(xué)習(xí)、演示、設(shè)計就可以輕松的在圖紙上完成。電路圖符號大全。
    發(fā)表于 11-13 08:00 ?29次下載

    電路圖符號大全

    電路圖符號是指用一種書畫圖形代表一種電子元件(比如:電容、電阻、二極管、三極官、 集成電路等等)的符號,有了電路圖符號我學(xué)習(xí)、演示、設(shè)計就可以輕松的在圖紙上完成。
    發(fā)表于 08-13 09:36 ?22次下載

    電路圖符號大全!

    電路圖符號是繪制電路圖的基礎(chǔ),只有了解對應(yīng)的電路圖符號,才能輕松上手繪制。電路圖符號數(shù)量眾多,大致可以分為四個類別:傳輸路徑、集成電路組件、限定符號、開關(guān)和繼電器
    的頭像 發(fā)表于 02-01 11:11 ?3.8w次閱讀

    UML簡介與圖詳解

    本篇介紹UML圖的基礎(chǔ)知識,包括2種和6種關(guān)系,并通過visio軟件,演示如何畫出一個UML
    的頭像 發(fā)表于 05-05 09:07 ?4875次閱讀
    <b class='flag-5'>UML</b>簡介與<b class='flag-5'>類</b>圖詳解

    電路圖符號大全

    電路圖是用來表示電路連接和元件的圖形符號。下面是一些常見的電路圖符號
    的頭像 發(fā)表于 10-27 11:13 ?5.1w次閱讀
    電路<b class='flag-5'>圖符號</b>大全