1. 程式人生 > >設計模式 — UML常見符號

設計模式 — UML常見符號

這裡寫圖片描述
(圖一)

1. 繼承(extends)

  • 介面與介面之間的繼承關係;
  • 類與類之間的繼承關係;

    箭頭指向方向:子類指向父類;

2. 實現(implement)

  • 類對介面的實現關係;

    箭頭指向方向:實現類指向介面;

3. 關聯關係(Association)

  • 雙向關聯:可以有兩個箭頭或者沒有箭頭(不推薦);
  • 單向關聯:有一個箭頭,且箭頭方向指向被關聯的物件;

    關聯關係是使例項變數實現的;
    每一個關聯的端點,還可以有一個基數,表示這一端的類可以有幾個例項;

    基數 含義
    0..1 零個或者一個例項
    0..*或者* 對例項的數目沒有限制(可以是0)
    1 只有一個例項
    1..* 至少有一個例項

    注:聚合關係和合成關係都屬於關聯關係;

4. 聚合關係(Aggregation)

  • 聚合關係屬於強關聯關係;

  • 關聯關係和聚合關係的不同點:

    • 關聯關係所涉及的兩個類處於同一個層次上;
    • 聚合關係所涉及的兩個類處於不平等的層次上(一個代表整體,一個代表部分);

5. 合成關係(Composition)

  • 合成關係屬於關聯關係,比聚合關係更強;

6. 依賴關係(Dependency)

  • 依賴是單向的,通常以方法引數的形式、區域性變數的形式,及對靜態方法呼叫的形式出現;

7. 類圖

這裡寫圖片描述

7.1 常見的類圖分為以下幾個層級:

  • 類名

    • 類名層不可省略,其他幾層可以不存在;
    • 類名是正體字,類是具體的;
    • 類名是斜體字,類是抽象的,或者是介面;
  • 屬性

    • +代表public;
    • #代表protected;
    • -代表private ;
  • 方法

    • +代表public;
    • #代表protected;
    • -代表private ;
    • 如果方法下面有一道下劃線,則表明該方法是靜態方法;
    • 方法後面帶的是返回值型別;
  • 內部類

7.2 參照上面的類圖寫出對應的類

public class Person {

    private String name;
    protected
int age; public String sex; // 構造方法 public Person() { } // 帶引數的方法 private void work(int num) { } // 不帶引數的方法 protected void eat() { } // 帶返回值的方法 public String play() { return null; } // 內部類 class Builder { } }

8. 參考:

《Java與模式》