uml及建模工具(常用uml建模工具)(统一建模语言)
本文簡單介紹了UML建模工具,主要介紹了類之間的幾種關系。
類圖
上面是一個類圖,從上到下依次表示了類名、類的成員變量、類的成員函數。成員變量前面使用+/-/#分別表示可見性是public,private,protected
接口沒有成員變量,所以只有兩個格子。
關系
依賴關系
依賴關系指的是一個類的修改會對另一個類產生影響。最簡單的例子是一個類使用了另一個類提供的服務。
依賴關系A依賴B表現為:
- B是A的成員變量
- B是A方法的參數
- B是A的基類
從以上可以看出,依賴關系指的是兩個類有直接的關系,如果將依賴的類成為client,被依賴的類稱為service provider,那么client必須知道service provider的存在,而service provider不需要知道client的存在。其它所有的關系其實都是依賴關系的特殊情況。
實例
繼承關系使用箭頭加虛線表示。spring 解析xml的過程就是這樣的一個依賴關系,為了簡單,這里省區了XmlBeanFactory的一個參數。
代碼
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);
}
}
繼承關系
java的extends和c#的冒號可以實現繼承,繼承使用實線和三角箭頭表示。
實例
上例中的XmlBeanFactory繼承了DefaultListableBeanFactory,所以UML類圖可以這樣表示:
關聯關系
關聯關系是類似關系型數據庫的那種對應關系,例如班級和學生的對應關系,每個班級可以對應多個學生,每個學生有一個班級,關聯關系使用實線和箭頭表示。
示例
和ER圖中的關聯關系一樣,關聯關系依對應的數量不同分為很多種:
- 雙向關聯
- 單向關聯
- 自關聯
- 重數關聯
重數關聯是更一般的關聯的描述方法,指明了關聯的對象的個數,有如下幾種
| 個數 | 含義 |
|---|---|
| 1…1 | 一個對象只與另一個對象有關系 |
| 0…1 | 一個對象與另外一個或0個對象有關系 |
| 1…* | 一個對象與一個或另外多個對象有關系 |
| 0…* | 一個對象與另外0個或多個對象有關系 |
| m…n | 一個對象與另外最少m個最多多個對象有關系 |
聚合關系
聚合關系是一種特殊的關聯關系,聚合分為整體和部分兩個組件。聚合使用空心菱形和實線加箭頭表示
示例
可以看出,engine對car的存在可以沒有感知,也就是一個引擎可以裝在這個車里,也可以裝在另一臺車里,部分可以獨立于整體之外存在。使用聚合可以將若干個功能重疊的類中可以復用的部分抽離出來,使用聚合來復用抽離出來的功能。
組合關系
組合關系表示的也是部分和整體之間的關系,只是組合的部分也要依賴于整體存在,組合關系使用實心菱形和實線加箭頭表示。
示例
這里的嘴和頭是相互依賴存在的。
實現關系
實現關系表示類實現接口,實現使用虛線和三角箭頭表示:
辨析
- 總的來說,所有的關系都包含了依賴關系,只是有的更加細化。
- 關聯包含了組合和聚合,聚合和組合的區別是聚合的部分可以獨立于整體存在,組合的部分不能獨立于整體存在。
總結
以上是生活随笔為你收集整理的uml及建模工具(常用uml建模工具)(统一建模语言)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python怎么调用另一个文件的函数_p
- 下一篇: 详解P2P技术