設計模式學習筆記02 - Java版之UML類圖


UML的插件下載地址

1. 基本介紹

  1. 統一建模語言, 是一種用於軟件系統設計和分析的語言工具, 用於幫助軟件開發人員進行思考和記錄思路的結果
  2. UML本身是一套符號的規定, 用於描述軟件模型中各個元素和他們之間的關係. 比如類 接口 實現 泛化 依賴 聚合等
    在這裏插入圖片描述

分類:

  1. 用例圖(use case)
  2. 靜態結構圖: 類圖 對象圖 包圖 組件圖 部署圖
  3. 動態行爲圖: 交互圖(時序圖和協作圖) 狀態圖 活動圖
    類圖是描述類和類之間關係的, 是uml圖最核心的

2. Eclipse安裝AmaterasUML

  1. Help -> Install New SoftWare…
  2. http://download.eclipse.org/tools/gef/updates/releases/
    在這裏插入圖片描述
    在這裏插入圖片描述
  3. 將AmaterasUML的三個jar包拷貝到eclipse的plugin目錄下, 重啓, OK…
    地址: https://zh.osdn.net/projects/amateras/downloads/56447/AmaterasUML_1.3.4.zip/

3. 類之間的關係

3.1 依賴

只要類中用到了對方, 那麼他們之間就存在依賴關係

public class Department {

}
public class IDCard {

}
public class Person {

}
public class PersonDao {

}
package com.liyang;

public class PersonServiceBean {
	PersonDao personDao = new PersonDao();
	
	public void save(Person person) {
		
	}
	
	public IDCard getIDCard(Integer personID) {
		return null;
	}
	
	public void modify() {
		
	}
}

在這裏插入圖片描述

3.2 泛化

泛化關係實際上就是繼承關係, 是依賴關係的特例

public abstract class DaoSupport {
	public void save(Object entity) {
		
	}
	
	public void delete(Object id) {
		
	}
}
public class PersonServiceBean2 extends DaoSupport {

}

在這裏插入圖片描述

3.3 實現

A類實現B類, 是依賴關係的特例

public interface PersonService {
	public void delete(Integer id);
}
public class PersonServiceBean3 implements PersonService {

	@Override
	public void delete(Integer id) {

	}
}

在這裏插入圖片描述

3.4 關聯

  1. 關聯關係實際上就是類與類之間的聯繫, 是依賴關係的特例
  2. 關聯具有導航性, 即雙向關係或者單向關係

單向

public class Person {
	IDCard idCard = new IDCard();
}
public class IDCard {

}

在這裏插入圖片描述
雙向

public class IDCard {
	Person person = new Person();
}
public class Person {
	IDCard idCard = new IDCard();
}

在這裏插入圖片描述

3.5 聚合

  1. 聚合表示的整體和部分的關係, 整體和部分可以分開, 聚合關係是關聯關係的特例, 所以具有關聯的導航性多重性
  2. 例如一個電腦由鍵盤 鼠標 顯示器組成, 組成電腦的各個配件是可以從電腦上分離出來的, 使用空心菱形的實線來表示
public class Computer {
	Moniter moniter = new Moniter();
	Mouse mouse = new Mouse();
	public Moniter getMoniter() {
		return moniter;
	}
	public void setMoniter(Moniter moniter) {
		this.moniter = moniter;
	}
	public Mouse getMouse() {
		return mouse;
	}
	public void setMouse(Mouse mouse) {
		this.mouse = mouse;
	}
	
}
public class Mouse {

}
public class Moniter {

}

在這裏插入圖片描述

3.6 組合

能分離出來的叫做聚合, 分離不出來的就是組合

public class Computer {
	private Moniter moniter = new Moniter(); // 不能分離
	private Mouse mouse = new Mouse();
	public Moniter getMoniter() {
		return moniter;
	}
	public void setMoniter(Moniter moniter) {
		this.moniter = moniter;
	}
	public Mouse getMouse() {
		return mouse;
	}
	public void setMouse(Mouse mouse) {
		this.mouse = mouse;
	}
}
public class Mouse {

}
public class Moniter {

}

在這裏插入圖片描述
更生動的例子:
人和身份證是聚合關係, 人丟失身份證重新補辦就OK …
人和腦袋就是組合關係, 人不能沒有腦袋…

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