一.UML圖
1.基本介紹
UML(Unified modeling language UML),即統一建模語言,是一種用于軟體系統分析和設計的語言工具,它用于幫助軟體開發人員進行思考和記錄思路的結果
UML本身是一套符號的規定,就像數學符號和化學符號一樣,這些符號用于描述軟體模型中的各個元素和他們之間的關系,比如類、介面、實作、泛化(繼承)、依賴、組合、聚合等,
2.UML圖分類
畫UML圖與寫文章差不多,都是把自己的思想描述給別人看,關鍵在于思路和條理
①用例圖(use case)
②靜態結構圖
類圖、物件圖、包圖、組件圖、部署圖
類圖是描述類與類之間的關系的,是UML圖中最核心的
③動態行為圖
互動圖(時序圖與協作圖)、狀態圖、活動圖
3.UML類圖
用于描述系統中的類(物件)本身的組成和類(物件)之間的各種靜態關系,
類之間的關系:依賴、泛化(繼承)、實作、關聯、組合與聚合
二.UML類圖各種關系
1.依賴關系
只要是在類中用到了對方,那么他們之間就存在依賴關系,如果沒有對方,連編譯都通過不了,
具體代碼
PersonServiceBean與PersonDao、Person 、IDCard 、Department 都是依賴關系
class PersonServiceBean{
private PersonDao personDao;
public void save(Person person){
}
public IDCard getIDCard(Integer personId){
return null;
}
public void modify(){
Department department = new Department();
}
}
2.泛化關系
泛化關系實際上就是繼承關系,是依賴關系的特例
具體代碼(很常見,不介紹了)
3.實作關系
實作關系實際上就是A類實作B類,也是依賴關系的特例
具體代碼(很常見,不介紹了)
4.關聯關系(Association)
關聯關系實際上就是類與類之間的聯系,也是依賴關系的特例
關聯關系具有導航性,即雙向關系或單向關系,同時還具有多重性,
單向1對1關系

雙向1對1關系

5.聚合關系(Aggregation)
表示的是整體和部分的關系,整體和部分可以分開,則表示聚合關系,
它是關聯關系的特例,也具有導航性與多重性
具體代碼示例
電腦和滑鼠,顯示幕其實是可以分開的,所以Computer類與Mouse 、Monitor其實是聚合關系
class Computer{
private Mouse mouse;
private Monitor monitor;
public void setMouse(Mouse mouse){
this.mouse = mouse;
}
public void setMonitor(Monitor monitor){
this.monitor = monitor;
}
}
6.組合關系(Composition)
如果我們認為電腦與滑鼠和顯示幕不可分離,則電腦與滑鼠和顯示幕是組合關系,
組合關系也是整體與部分的關系,但是整體與部分不可以分開,也是關聯關系的特例,
具體代碼示例
在這里,Computer一創建,Mouse與Monitor也同時會實體化,他們“共生共滅”,不可分離,所以是組合關系
class Computer{
private Mouse mouse = new Mouse();
private Monitor monitor = new Monitor();
}
關于聚合與組合
Person和IDCard就是聚合,身份證丟了,人不一定死,還可以補辦一個,
但是Head和Person就是組合關系,人的頭沒了人一定就沒了,
public class Person{
private IDCard card;
private Head head = new Head();
}
特殊情況
但是如果在程式中Person物體類中定義了對IDCard進行級聯洗掉(洗掉一個物件也會把另外一個刪掉),即洗掉Person時連同IDCard一起洗掉,則IDCard和Person也是組合關系,即人沒了,身份證就可以一起消失,不存在于這個世界上了,從這個意義上講,人和身份證也是組合關系,總之只要體現“同生共死”這種就算是組合關系,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/257777.html
標籤:其他
上一篇:MyCat之搭建讀寫分離
下一篇:Redis初識
