UML的插件下載地址
1. 基本介紹
- 統一建模語言, 是一種用於軟件系統設計和分析的語言工具, 用於幫助軟件開發人員進行思考和記錄思路的結果
- UML本身是一套符號的規定, 用於描述軟件模型中各個元素和他們之間的關係. 比如類 接口 實現 泛化 依賴 聚合等
分類:
- 用例圖(use case)
- 靜態結構圖: 類圖 對象圖 包圖 組件圖 部署圖
- 動態行爲圖: 交互圖(時序圖和協作圖) 狀態圖 活動圖
類圖是描述類和類之間關係的, 是uml圖最核心的
2. Eclipse安裝AmaterasUML
- Help -> Install New SoftWare…
- http://download.eclipse.org/tools/gef/updates/releases/
- 將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 關聯
- 關聯關係實際上就是類與類之間的聯繫, 是依賴關係的特例
- 關聯具有導航性, 即雙向關係或者單向關係
單向
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 聚合
- 聚合表示的整體和部分的關係, 整體和部分可以分開, 聚合關係是關聯關係的特例, 所以具有關聯的導航性和多重性
- 例如一個電腦由鍵盤 鼠標 顯示器組成, 組成電腦的各個配件是可以從電腦上分離出來的, 使用空心菱形的實線來表示
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 …
人和腦袋就是組合關係, 人不能沒有腦袋…