分享:類圖的6大關係詳解

  類圖cdn

  如下類圖使用 PlantUML 繪製,更多語法及使用請參考:http://plantuml.com/ 。對象

  泛化關係 (Generalization)blog

  用來描述繼承關係,在 Java 中使用 extends 關鍵字。繼承

  


  @startuml接口

  title Generalizationci

  class Vihicalit

  class Cario

  class Trunckclass

  Vihical |-- Car變量

  Vihical |-- Trunck

  @enduml

  實現關係 (Realization)

  用來實現一個接口,在 Java 中使用 implements 關鍵字。

  


  @startuml

  title Realization

  interface MoveBehavior

  class Fly

  class Run

  MoveBehavior |.. Fly

  MoveBehavior |.. Run

  @enduml

  聚合關係 (Aggregation)

  表示總體由部分組成,可是總體和部分不是強依賴的,總體不存在了部分仍是會存在。

  


  @startuml

  title Aggregation

  class Computer

  class Keyboard

  class Mouse

  class Screen

  Computer o-- Keyboard

  Computer o-- Mouse

  Computer o-- Screen

  @enduml

  組合關係 (Composition)

  和聚合不一樣,組合中總體和部分是強依賴的,總體不存在了部分也不存在了。好比公司和部門,公司沒了部門就不存在了。可是公司和員工就屬於聚合關係了,由於公司沒了員工還在。

  


  @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

相關文章
相關標籤/搜索