1)UML – Unified modeling language UML(統一建模語言),是一種用於軟件系統分析和設計的語言工具,它用於幫助軟件開發人員進行思考和記錄思路的結果
2)UML自己是一套符號的規定,就像數學符號和化學符號同樣,這些符號用於描述軟件模型中的各個元素和它們之間的關係,好比類、接口、實現、泛化、依賴、組合、聚合等。如右圖 :設計模式
UML圖分類 :
1)用例圖(use case)
2)靜態結構圖:類圖、對象圖、包圖、組件圖、部署圖
3)動態行爲圖 :交互圖(時序圖與協做圖)、狀態圖、活動圖
說明:
1)類圖是描述類與類之間的關係的,是UML圖中最核心的ide
1)用於描述系統中的類(對象)自己的組成和類(對象)之間的各類靜態關係。
2)類之間的關係 :依賴、泛化(繼承)、實現、關聯、聚合與組合
3)類圖簡單舉例工具
package com.example.demo.uml.dependence; public class PersonServiceBean { private PersonDao personDap; public void save(Person person) { } public IDCard getIDCard(Integer personid) { return null; } public void modify() { Department department = new Department(); } } class Department { } class IDCard { } class Person { } class PersonDao { }
小結
1)類中用到了對方
2)若是是類的成員屬性
3)若是是方法的返回類型
4)是方法接收的參數類型
5)方法中使用到this
package com.example.demo.uml.generalization; public abstract class DaoSupport { public void save(Object entity) { } public void delete(Object id) { } } package com.example.demo.uml.generalization; public class PersonServiceBean extends DaoSupport{ }
小結 :
1)泛化關係實際上就是繼承關係
2)若是A類繼承了B類,咱們就說A和B存在泛化關係.net
package com.example.demo.uml.implementation; public interface PersonService { void delete(Integer id); } package com.example.demo.uml.implementation; public class PersonServiceBean implements PersonService { @Override public void delete(Integer id) { } }
單向一對一關係
雙向一對一關係設計
package com.example.demo.uml.aggregation; public class Computer { // 鼠標能夠和computer分離的 private Mouse mouse; // 顯示器能夠和computer分離的 private Moniter moniter; public void setMouse(Mouse mouse) { this.mouse = mouse; } public void setMoniter(Moniter moniter) { this.moniter = moniter; } } class Mouse { } class Moniter { }
若是咱們的Mouse、Monitor和Computer是不可分離的,則升級爲組合關係3d
package com.example.demo.uml.composition; public class Person { private IDCard card; private Head head = new Head(); } class IDCard { } class Head { }
可是若是在程序中Person實體中定義了對IDCard進行級聯刪除,即刪除Person時連同IDCard一塊兒刪除,那麼IDCard和Person就是組合了。code