在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

解析UML類圖和時序圖

jf_78858299 ? 來源:IT哈哈 ? 作者:IT哈哈 ? 2023-05-05 11:03 ? 次閱讀

這里不會將UML的各種元素都提到,我只想講講類圖中各個類之間的關系; 能看懂類圖中各個類之間的線條、箭頭代表什么意思后,也就足夠應對 日常的工作和交流; 同時,我們應該能將類圖所表達的含義和最終的代碼對應起來; 有了這些知識,看后面章節的設計模式結構圖就沒有什么問題了;

本章所有圖形使用Enterprise Architect 9.2來畫,所有示例詳見根目錄下的design_patterns.EAP

從一個示例開始

請看以下這個類圖,類之間的關系是我們需要關注的:

  • 車的類圖結構為<>,表示車是一個抽象類;
  • 它有兩個繼承類:小汽車和自行車;它們之間的關系為實現關系,使用帶空心箭頭的虛線表示;
  • 小汽車為與SUV之間也是繼承關系,它們之間的關系為泛化關系,使用帶空心箭頭的實線表示;
  • 小汽車與發動機之間是組合關系,使用帶實心箭頭的實線表示;
  • 學生與班級之間是聚合關系,使用帶空心箭頭的實線表示;
  • 學生與身份證之間為關聯關系,使用一根實線表示;
  • 學生上學需要用到自行車,與自行車是一種依賴關系,使用帶箭頭的虛線表示;

下面詳細介紹這六種關系;


類之間的關系

泛化關系(generalization)

類的繼承結構表現在UML中為:泛化(generalize)與實現(realize):

繼承關系為 is-a的關系;兩個對象之間如果可以用 is-a 來表示,就是繼承關系:(..是..)

eg:自行車是車、貓是動物

泛化關系用一條帶空心箭頭的直接表示;如下圖表示(A繼承自B);

eg:汽車在現實中有實現,可用汽車定義具體的對象;汽車與SUV之間為泛化關系;

注:最終代碼中,泛化關系表現為繼承非抽象類;

實現關系(realize)

實現關系用一條帶空心箭頭的虛線表示;

eg:”車”為一個抽象概念,在現實中并無法直接用來定義對象;只有指明具體的子類(汽車還是自行車),才 可以用來定義對象(”車”這個類在C++中用抽象類表示,在JAVA中有接口這個概念,更容易理解)

注:最終代碼中,實現關系表現為繼承抽象類;

聚合關系(aggregation)

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

聚合關系用于表示實體對象之間的關系,表示整體由部分構成的語義;例如一個部門由多個員工組成;

與組合關系不同的是,整體和部分不是強依賴的,即使整體不存在了,部分仍然存在;例如, 部門撤銷了,人員不會消失,他們依然存在;

組合關系(composition)

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

與聚合關系一樣,組合關系同樣表示整體由部分構成的語義;比如公司由多個部門組成;

但組合關系是一種強依賴的特殊聚合關系,如果整體不存在了,則部分也不存在了;例如, 公司不存在了,部門也將不存在了;

關聯關系(association)

關聯關系是用一條直線表示的;它描述不同類的對象之間的結構關系;它是一種靜態關系, 通常與運行狀態無關,一般由常識等因素決定的;它一般用來定義對象之間靜態的、天然的結構; 所以,關聯關系是一種“強關聯”的關系;

比如,乘車人和車票之間就是一種關聯關系;學生和學校就是一種關聯關系;

關聯關系默認不強調方向,表示對象間相互知道;如果特別強調方向,如下圖,表示A知道B,但 B不知道A;

注:在最終代碼中,關聯對象通常是以成員變量的形式實現的;

依賴關系(dependency)

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

與關聯關系不同的是,它是一種臨時性的關系,通常在運行期間產生,并且隨著運行時的變化; 依賴關系也可能發生變化;

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

注:在最終代碼中,依賴關系體現為類構造方法及類方法的傳入參數,箭頭的指向為調用關系;依賴關系處理臨時知道對方外,還是“使用”對方的方法和屬性;

時序圖

為了展示對象之間的交互細節,后續章節對設計模式中每個模式的介紹,都會用到時序圖;

時序圖(Sequence Diagram)是顯示對象之間交互的圖,這些對象是按時間順序排列的。時序圖中顯示的是參與交互的對象及其對象之間消息交互的順序。

時序圖包括的建模元素主要有:對象(Actor)、生命線(Lifeline)、控制焦點(Focus of control)、消息(Message)等等。

關于時序圖,以下這篇文章將概念介紹的比較詳細,更多實例應用,參加后續章節中的模式中的時序圖。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • UML
    UML
    +關注

    關注

    0

    文章

    122

    瀏覽量

    30908
  • 代碼
    +關注

    關注

    30

    文章

    4837

    瀏覽量

    69128
收藏 人收藏

    評論

    相關推薦

    UML詳解

    UML
    電子學習
    發布于 :2023年01月14日 10:12:47

    UML狀態和Petri網絡在測試用例生成的應用

    【作者】:陳志德;曾凡平;【來源】:《小型微型計算機系統》2010年03期【摘要】:分析和研究UML狀態、擴展狀態機和Petri網在測試用例生成的特點,提出結合三者優勢的測試用例
    發表于 04-24 09:52

    請問UML用例的創建方法是什么?

    UML用例的創建方法及其用例的描述
    發表于 11-06 07:10

    編寫電視TV,UML和說明

    編寫電視TV,UML和說明如下:注意:(1)電視只有在打開的狀態下才可以調音量和設置新頻道;(2)設置音量和頻道時,應該在規定的范圍,如音量值為1-7。解題要求:編寫測試
    發表于 10-29 06:09

    基于UML的考試管理系統設計

    文中著重解決UML在完成各階段任務中的應用、分析設計流程等問題,就時序兩者設計次序進行探討。UM
    發表于 12-22 17:14 ?35次下載
    基于<b class='flag-5'>UML</b>的考試管理系統設計

    什么是時序?教你如何看懂時序

    時序(Sequence Diagram),又名序列、循序、順序,是一種UML交互
    發表于 10-29 10:08 ?7.2w次閱讀
    什么是<b class='flag-5'>時序</b><b class='flag-5'>圖</b>?教你如何看懂<b class='flag-5'>時序</b><b class='flag-5'>圖</b>

    時序的關系

    時序是在軟件系統設計中直接和程序代碼相關聯的,準確地說,程序代碼是由
    發表于 10-29 11:21 ?6835次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>圖</b>和<b class='flag-5'>類</b><b class='flag-5'>圖</b>的關系

    時序怎么畫步驟教程_時序用什么工具畫_時序的作用是什么

    時序(Sequence Diagram),亦稱為序列、循序或順序,是一種UML交互
    發表于 12-11 19:22 ?4.5w次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>圖</b>怎么畫步驟教程_<b class='flag-5'>時序</b><b class='flag-5'>圖</b>用什么工具畫_<b class='flag-5'>時序</b><b class='flag-5'>圖</b>的作用是什么

    怎么由芯片的時序寫程序?_單片機對1602液晶時序編程設計

    如何看懂芯片的時序,進行編程設計是單片機對外接芯片進行操作的基礎。本文以1602為例,解析單片機對芯片時序的編程思路。
    發表于 01-06 10:13 ?1.1w次閱讀
    怎么由芯片的<b class='flag-5'>時序</b><b class='flag-5'>圖</b>寫程序?_單片機對1602液晶<b class='flag-5'>時序</b><b class='flag-5'>圖</b>編程設計

    UML之間的關系

    UML中描述對象和之間相互關系的方式包括:依賴(Dependency),關聯(Association),聚合(Aggregation),組合(Composition),泛化(Generalization),實現(Realization)等。
    的頭像 發表于 09-25 09:57 ?3945次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>類</b><b class='flag-5'>圖</b>之間的關系

    什么是UML?常見的UML工具有哪些?

    UML是統一建模語言,又稱標準建模語言。是對軟件設計開發過程可視化建模的一種語言。多應用在一些軟件系統工程上,有時在應用在機械系統和業務流程上有所應用。這種模型通常以圖表方式呈現。 UML狀態圖
    的頭像 發表于 06-22 14:10 ?4758次閱讀
    什么是<b class='flag-5'>UML</b><b class='flag-5'>圖</b>?常見的<b class='flag-5'>UML</b><b class='flag-5'>圖</b>工具有哪些?

    UML簡介與詳解

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

    UML學習筆記

    標準建模語言UML可以由下列5來定義。* **用例**:從用戶角度描述系統功能,并指出各功能的操作者。 **靜態**:包
    的頭像 發表于 05-05 10:26 ?777次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>圖</b>學習筆記

    UML狀態詳解

    本篇介紹了UML狀態的基礎知識,并通過visio繪制一個全自動洗衣機的UML狀態實例,來介紹UML狀態
    的頭像 發表于 05-09 09:00 ?3392次閱讀
    <b class='flag-5'>UML</b>狀態<b class='flag-5'>圖</b>詳解

    UML時序詳解

    本篇介紹了UML時序的基礎知識,并通過visio繪制一個物聯網設備WIFI配網的UML時序
    的頭像 發表于 05-16 09:09 ?2287次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>時序</b><b class='flag-5'>圖</b>詳解
    主站蜘蛛池模板: 欧美成人福利 | 亚洲大成色www永久网址 | 性视频亚洲 | 亚洲一区二区三区不卡视频 | 久久亚洲国产视频 | 亚洲人成在线精品不卡网 | 久久xx| 日本片免费观看一区二区 | 色播五月综合 | 亚洲视频在线一区二区 | 久久久久久久成人午夜精品福利 | 成人免费视频一区 | 激情网址在线观看 | 天天草夜夜骑 | 免费可以看黄的视频 s色 | 美妇乱人伦性 | 免费国产小视频 | tube69日本 | 成年美女黄网站色大免费视频 | 午夜三级视频 | 白浆喷射 | 真实子伦视频不卡 | 一级特黄aaa大片在 一级特黄aaa大片在线观看视频 | qvod高清在线成人观看 | 韩漫免费网站无遮挡羞羞漫画 | 性xxx无遮挡 | 色婷婷综合缴情综六月 | 双性人皇上被c到哭 | 欧美男女交性过程视频 | 亚洲欧美在线视频免费 | 特黄一级视频 | 国产黄视频网站 | 97影院理论午夜论不卡 | 天天干天天综合 | 色综合久久88色综合天天 | 2019国产情侣 | 国产小视频在线免费观看 | 7m视频精品凹凸在线播放 | 成人欧美精品一区二区不卡 | 国内精品久久久久影院薰衣草 | 亚洲国产系列 |