UML中的四種關係

来源:http://www.cnblogs.com/shouce/archive/2016/04/28/5441241.html
-Advertisement-
Play Games

一、Association關聯關係 說明:Assocition(關聯):描述了兩個或多個類之間的結構性關係。 (1)普通關聯: 1)Association name名稱:用以描述該關係的性質。 2)Role角色:當一個類處於關聯的某一端時,該類就在這個關係中扮演了一個特定的角色;角色是關聯中靠近它的 ...


一、Association關聯關係

說明:Assocition(關聯):描述了兩個或多個類之間的結構性關係。

(1)普通關聯:

1)Association name名稱:用以描述該關係的性質。

2)Role角色:當一個類處於關聯的某一端時,該類就在這個關係中扮演了一個特定的角色;角色是關聯中靠近它的一端的類對另外一端的類呈現的職責。

3)Multiplicity多重性:關聯角色的多重性是說明一個關聯的實例中有多少個相互連接的對象。

例如():

 

複製代碼
Public Class Person

Private employer As Company

End Class



Public Class Company

Private employee As Person

'……

End Class
複製代碼

 

 

例如:

複製代碼
Public Class CatalogEntry

Private name As String

Private number As Integer

Private cost As Double

Public Function getCost() As Double

Return cost

End Function

End Class
複製代碼 複製代碼
Public Class Part

Private entry As CatalogEntry

Public Function Cost() As Double

Return entry.getCost

End Function

End Class



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim screw As New CatalogEntry("screw", 28834, 0.02)

Dim screw1 As New Part(screw)

screw1.Cost()

'……

End Sub
複製代碼

 

上面的兩個例子,第一個是一個雙向的普通關聯,第二個例子是一個單向關聯。同理,兩個類之間可以有多種關聯,一個類也可以和多個類關聯,類也可以自身關聯。

(2)聚合aggregation

說明:聚合表示一種弱的“擁有”關係,體現的是A對象可以包含B對象,但B對象不是A對象的一部分。

例:

複製代碼
Public Class GooseGroup

Private arrayWildGoose As New WildGoose()

'……

End Class
複製代碼

 

(3)組合composition

說明:一種強的“擁有”關係,體現了嚴格的部分和整體的生命周期一樣。

例如:

複製代碼
Public Class Bird

Private wing As Wing

Public Sub New()

wing = New Wing() '在鳥bird類中,初始化時,實例化翅膀Wing,它們之間同時生成

End Sub

End Class
複製代碼

 

二、Generalization泛化關係

說明:是一種特殊/一般關係,特殊元素(子元素)的對象可替代一般元素(父元素)的對象。用這種方法,子元素共用了父元素的結構和行為。

表示方法:

Public Class Dog : Inherits Animal

'……

End Class

 

說明:VB.net中如果說明某個類不再被繼承,可以使用notInheritable

三、Dependency依賴關係

依賴關係:

例如:

說明:動物有幾大特征,比如有新陳代謝,能繁殖。而動物要有生命力,需要氧氣、水以及食物等。也就是說,動物依賴氧氣和水。他們之間是依賴關係(dependency),用虛線箭頭來表示

例如:

複製代碼
Public Class Professor

Public Function Teach(ByVal c As Course)

'……

End Function

End Class
複製代碼

 

說明:如果兩個類有結構關係(關聯關係),那麼就不用依賴關係(兩個事物一般都有這個關係)

 

四、Realization實現

說明:實現是類元之間的語義關係,在該關係中一個類元描述了另一個類元保證實現的契約。

表示方法:

複製代碼
Public Interface IShape

Function Draw()

End Interface



Public Class Circle : Implements IShape

Public Function Draw() Implements IShape.Draw

End Function

End Class
複製代碼

 

 

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 安裝: 1. UnixBench from version 5.1 on has both system and graphics tests. If you want to use the graphic tests, edit the Makefile and make sure that th ...
  • 安裝samba完後會生成samba目錄 > /etc/samba http://blog.csdn.net/xt_xiaotian/article/details/4216408 允許的IP地址段,將自己的IP地址段加入即可(註意IP的最後一段沒有,但後邊有個點) 重啟機器時,smb服務並不會自動啟 ...
  • LNMT在網站架構中的實現過程: Client --> http --> Nginx --> reverse_proxy (http) --> tomcat (http connector) --> mysql 但是當nginx有大量的併發請求時,nginx會反代大量的併發請求至tomcat,這時為 ...
  • 介紹 本篇主要介紹Linux定時任務命令crontab的用法,crontab是定時任務的命令,而crond則是定時任務的啟動服務。crontab的定時任務分為系統任務和用戶任務,其實二者沒有太大的區別。 啟動 在Centos中crond服務預設是自動啟動的,如果沒有啟動可以手動啟動,具體方法如下。 ...
  • 情形: 1.主機(host):ubuntu 2.虛擬機里安裝的操作系統版本(guest):windows 7專業版 3.simplify3d破解版版本:3.0.2(破解需要的工具均在下文的百度雲地址里) 所需文件下載地址:http://pan.baidu.com/s/1slUoEZz,密碼:57cs ...
  • 在測試前,理應瞭解本機所具備的特點,比如CPU頻率、記憶體頻率、記憶體大小,等等信息。 查看CPU用如下命令(多少個核,頻率,特性等): cat /proc/cpuinfo 查看記憶體用如下命令:(只有當前記憶體大小,已用空間等等,不能看到記憶體頻率) cat /proc/meminfo 要查看記憶體型號和頻率 ...
  • 寫在前面 最近在重溫asp.net,找了一本相關的書籍。本書在第一章就講了,在不使用瀏覽器的情況下生成一個web請求,獲取伺服器返回的內容。於是在網上搜索關於Http請求相關的資料,發現了很多資料都是講述基於HttpGet和HttpPost請求伺服器的資源,然根據Get和Post的單詞意思就大概知道 ...
  • ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...