設計模式 | UML類圖 | 依賴、泛化(繼承)、實現、關聯、聚合與組合

設計模式之UML類圖

1.UML類圖

基本介紹:
  1. UML——Unified modeling language UML(統一建模語言),是一種用於軟件系統
    分析和設計的語言工具,它用於幫助軟件開發人員進行思考和記錄思路的結果
  2. UML本身是一套符號的規定,就像數學符號和化學符號一樣,這些符號用於描述軟件模型中的各個元素和他們之間的關係,比如類、接口、實現、泛化、依賴、組合、聚合
  3. 使用UML來建模,常用的工具有 RationalRose , 也可以使用一些插件來建模
UML圖分類:
  1. 用例圖(use case)
  2. 靜態結構圖:類圖、對象圖、包圖、組件圖、部署圖
  3. 動態行爲圖:交互圖(時序圖與協作圖)、狀態圖、活動圖

用於描述系統中的類(對象)本身的組成和類(對象)之間的各種靜態關係。

類之間的關係:依賴、泛化(繼承)、實現、關聯、聚合與組合

2.依賴關係

基本介紹:
只要是在類中用到了對方,那麼他們之間就存在依賴關係。如果沒有對方,連編

繹都通過不了。使用帶帶箭頭的虛線來表示:

代碼演示:
public class PersonServiceBean {
	private PersonDao personDao;//類
	
	public void save(Person person){}
	
	public IDCard getIDCard(Integer personid){}
	
	public void modify(){
		Department department = new Department();
	}
}
public class PersonDao{}
public class IDCard{}
public class Person{}
public class Department{}
類圖展示:

在這裏插入圖片描述

小結:
什麼時候用到了依賴關係呢?
  1. 類中用到了對方
  2. 如果是類的成員屬性
  3. 如果是方法的返回類型
  4. 是方法接收的參數類型
  5. 方法中使用到

3.泛化關係

基本介紹:

泛化關係實際上就是繼承關係,他是依賴關係的特例 使用帶帶空心三角形的直線來表示:

代碼演示:
public abstract class DaoSupport{
public void save(Object entity){
}
public void delete(Object id){
}
}
public class PersonServiceBean extends Daosupport{
}
類圖展示:

在這裏插入圖片描述

小結:

1) 泛化關係實際上就是繼承關係
2) 如果A類繼承了B類,我們就說A和B存在泛化關係

4.實現關係

基本介紹:

實現關係實際上就是A類實現B接口,他是依賴關係的特例

代碼演示:
public interface PersonService {
public void delete(Interger id);
}
public class PersonServiceBean implements PersonService {
public void delete(Interger id){}
}
類圖展示:

在這裏插入圖片描述

5.關聯關係

基本介紹:
關聯關係實際上就是類與類之間的聯繫,他是依賴關係的特例 關聯具有導航性:即雙向關係或單向關係
代碼演示:
單向一對一關係:
public class Person {
	private IDCard card;
}
public class IDCard{}

雙向一對一關係:

public class Person {
	private IDCard card;
}
public class IDCard{
	private Person person
}

6.聚合關係

基本介紹:

聚合關係(Aggregation)表示的是整體和部分的關係,整體與部分可以分開
合關係是關聯關係的特例
,所以他具有關聯的導航性與多重性
如:一臺電腦由鍵盤(keyboard)、顯示器(monitor),鼠標等組成;組成電腦的各個
配件是可以從電腦上分離出來的,使用帶空心菱形的實線來表示:


/**
 * @author 孫一鳴 on 2020/2/3
 */
public class Computer {
    private Mouse mouse;
    private Monitor monitor;

    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }

    public void setMonitor(Monitor monitor) {
        this.monitor = monitor;
    }
}

類圖展示:

在這裏插入圖片描述

7.組合關係

基本介紹:

組合關係:也是整體與部分的關係,組合關係中整體對象可以控制成員對象的生命週期。但是整體與部分不可以分開。使用帶實心菱形的實線來表示:
再看一個案例:在程序中我們定義實體:Person與IDCard、Head, 那麼 Head 和
Person 就是 組合,IDCard 和 Person 就是聚合。
但是如果在程序中Person實體中定義了對IDCard進行級聯刪除,即刪除Person時
連同IDCard一起刪除,那麼IDCard 和 Person 就是組合了

public class Person{
	private IDCard card;
	private Head head = new Head();
}
public class IDCard{}
public class Head{}
類圖展示:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章