日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

uml及建模工具(常用uml建模工具)(统一建模语言)

發(fā)布時(shí)間:2023/12/19 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 uml及建模工具(常用uml建模工具)(统一建模语言) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文簡(jiǎn)單介紹了UML建模工具,主要介紹了類之間的幾種關(guān)系。

類圖


上面是一個(gè)類圖,從上到下依次表示了類名、類的成員變量、類的成員函數(shù)。成員變量前面使用+/-/#分別表示可見(jiàn)性是public,private,protected

接口沒(méi)有成員變量,所以只有兩個(gè)格子。

關(guān)系

依賴關(guān)系

依賴關(guān)系指的是一個(gè)類的修改會(huì)對(duì)另一個(gè)類產(chǎn)生影響。最簡(jiǎn)單的例子是一個(gè)類使用了另一個(gè)類提供的服務(wù)。
依賴關(guān)系A(chǔ)依賴B表現(xiàn)為:

  1. B是A的成員變量
  2. B是A方法的參數(shù)
  3. B是A的基類
    從以上可以看出,依賴關(guān)系指的是兩個(gè)類有直接的關(guān)系,如果將依賴的類成為client,被依賴的類稱為service provider,那么client必須知道service provider的存在,而service provider不需要知道client的存在。其它所有的關(guān)系其實(shí)都是依賴關(guān)系的特殊情況。
實(shí)例

繼承關(guān)系使用箭頭加虛線表示。spring 解析xml的過(guò)程就是這樣的一個(gè)依賴關(guān)系,為了簡(jiǎn)單,這里省區(qū)了XmlBeanFactory的一個(gè)參數(shù)。

代碼
public class XmlBeanFactory extends DefaultListableBeanFactory { 
   

	private final XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this);


	/** * Create a new XmlBeanFactory with the given resource, * which must be parsable using DOM. * @param resource XML resource to load bean definitions from * @throws BeansException in case of loading or parsing errors */
	public XmlBeanFactory(Resource resource) throws BeansException { 
   
		this(resource, null);
	}

	/** * Create a new XmlBeanFactory with the given input stream, * which must be parsable using DOM. * @param resource XML resource to load bean definitions from * @param parentBeanFactory parent bean factory * @throws BeansException in case of loading or parsing errors */
	public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws BeansException { 
   
		super(parentBeanFactory);
		this.reader.loadBeanDefinitions(resource);
	}

}

繼承關(guān)系

java的extends和c#的冒號(hào)可以實(shí)現(xiàn)繼承,繼承使用實(shí)線和三角箭頭表示。

實(shí)例

上例中的XmlBeanFactory繼承了DefaultListableBeanFactory,所以UML類圖可以這樣表示:

關(guān)聯(lián)關(guān)系

關(guān)聯(lián)關(guān)系是類似關(guān)系型數(shù)據(jù)庫(kù)的那種對(duì)應(yīng)關(guān)系,例如班級(jí)和學(xué)生的對(duì)應(yīng)關(guān)系,每個(gè)班級(jí)可以對(duì)應(yīng)多個(gè)學(xué)生,每個(gè)學(xué)生有一個(gè)班級(jí),關(guān)聯(lián)關(guān)系使用實(shí)線和箭頭表示。

示例

和ER圖中的關(guān)聯(lián)關(guān)系一樣,關(guān)聯(lián)關(guān)系依對(duì)應(yīng)的數(shù)量不同分為很多種:

  1. 雙向關(guān)聯(lián)
  2. 單向關(guān)聯(lián)
  3. 自關(guān)聯(lián)
  4. 重?cái)?shù)關(guān)聯(lián)
    重?cái)?shù)關(guān)聯(lián)是更一般的關(guān)聯(lián)的描述方法,指明了關(guān)聯(lián)的對(duì)象的個(gè)數(shù),有如下幾種
個(gè)數(shù) 含義
1…1 一個(gè)對(duì)象只與另一個(gè)對(duì)象有關(guān)系
0…1 一個(gè)對(duì)象與另外一個(gè)或0個(gè)對(duì)象有關(guān)系
1…* 一個(gè)對(duì)象與一個(gè)或另外多個(gè)對(duì)象有關(guān)系
0…* 一個(gè)對(duì)象與另外0個(gè)或多個(gè)對(duì)象有關(guān)系
m…n 一個(gè)對(duì)象與另外最少m個(gè)最多多個(gè)對(duì)象有關(guān)系

聚合關(guān)系

聚合關(guān)系是一種特殊的關(guān)聯(lián)關(guān)系,聚合分為整體和部分兩個(gè)組件。聚合使用空心菱形和實(shí)線加箭頭表示

示例


可以看出,engine對(duì)car的存在可以沒(méi)有感知,也就是一個(gè)引擎可以裝在這個(gè)車?yán)铮部梢匝b在另一臺(tái)車?yán)铮糠挚梢元?dú)立于整體之外存在。使用聚合可以將若干個(gè)功能重疊的類中可以復(fù)用的部分抽離出來(lái),使用聚合來(lái)復(fù)用抽離出來(lái)的功能。

組合關(guān)系

組合關(guān)系表示的也是部分和整體之間的關(guān)系,只是組合的部分也要依賴于整體存在,組合關(guān)系使用實(shí)心菱形和實(shí)線加箭頭表示。

示例


這里的嘴和頭是相互依賴存在的。

實(shí)現(xiàn)關(guān)系

實(shí)現(xiàn)關(guān)系表示類實(shí)現(xiàn)接口,實(shí)現(xiàn)使用虛線和三角箭頭表示:

辨析

  1. 總的來(lái)說(shuō),所有的關(guān)系都包含了依賴關(guān)系,只是有的更加細(xì)化。
  2. 關(guān)聯(lián)包含了組合和聚合,聚合和組合的區(qū)別是聚合的部分可以獨(dú)立于整體存在,組合的部分不能獨(dú)立于整體存在。

總結(jié)

以上是生活随笔為你收集整理的uml及建模工具(常用uml建模工具)(统一建模语言)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。