類圖
如下類圖使用 PlantUML 繪製,更多語法及使用請參考:http://plantuml.com/ 。併發
泛化關係 (Generalization)
用來描述繼承關係,在 Java 中使用 extends 關鍵字。分佈式
@startuml title Generalization class Vihical class Car class Trunck Vihical <|-- Car Vihical <|-- Trunck @enduml
實現關係 (Realization)
用來實現一個接口,在 Java 中使用 implements 關鍵字。高併發
@startuml title Realization interface MoveBehavior class Fly class Run MoveBehavior <|.. Fly MoveBehavior <|.. Run @enduml
聚合關係 (Aggregation)
表示總體由部分組成,可是總體和部分不是強依賴的,總體不存在了部分仍是會存在。spa
@startuml title Aggregation class Computer class Keyboard class Mouse class Screen Computer o-- Keyboard Computer o-- Mouse Computer o-- Screen @enduml
組合關係 (Composition)
和聚合不一樣,組合中總體和部分是強依賴的,總體不存在了部分也不存在了。好比公司和部門,公司沒了部門就不存在了。可是公司和員工就屬於聚合關係了,由於公司沒了員工還在。code
@startuml title Composition class Company class DepartmentA class DepartmentB Company *-- DepartmentA Company *-- DepartmentB @enduml
關聯關係 (Association)
表示不一樣類對象之間有關聯,這是一種靜態關係,與運行過程的狀態無關,在最開始就能夠肯定。所以也能夠用 1 對 一、多對 一、多對多這種關聯關係來表示。好比學生和學校就是一種關聯關係,一個學校能夠有不少學生,可是一個學生只屬於一個學校,所以這是一種多對一的關係,在運行開始以前就能夠肯定。對象
@startuml title Association class School class Student School "1" - "n" Student @enduml
依賴關係 (Dependency)
和關聯關係不一樣的是,依賴關係是在運行過程當中起做用的。A 類和 B 類是依賴關係主要有三種形式:繼承
A 類是 B 類方法的局部變量;
A 類是 B 類方法當中的一個參數;
A 類向 B 類發送消息,從而影響 B 類發生變化。教程
@startuml title Dependency class Vihicle { move(MoveBehavior) } interface MoveBehavior { move() } note "MoveBehavior.move()" as N Vihicle ..> MoveBehavior Vihicle .. N @enduml
**免費Java高級資料須要本身領取,涵蓋了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高併發分佈式等教程,一共30G。
傳送門:https://mp.weixin.qq.com/s/Jz...**接口