打開UML類圖的正確姿式

UML(Unified Modeling Language) 統一建模語言,又稱標準建模語言。是用來對軟件密集系統進行可視化建模的一種語言。UML的定義包括UML語義和UML表示法兩個元素。UML是在開發階段,說明、可視化、構建和書寫一個面向對象軟件密集系統的製品的開放方法。最佳的應用是工程實踐,對大規模,複雜系統進行建模方面,特別是在軟件架構層次,已經被驗證有效。統一建模語言(UML)是一種模型化語言。模型大多以圖表的方式表現出來。一份典型的建模圖表一般包含幾個塊或框,鏈接線和做爲模型附加信息之用的文本。這些雖簡單卻很是重要,在UML規則中相互聯繫和擴展。
以上內容來自百度百科。java

推薦一個繪圖和學習的在線工具ProcessOn微信

UML類圖,屬於UML圖中的一種,是在面嚮對象語言用中用來表示一個類的圖形,基本的UML類圖以下所示:
UML圖入門UML圖學習UML類圖架構

類簡單表示:

如上圖,就表示一個類,三個格子從上至下分別表示:ide

  • 類名(若是是接口,就使用斜體表示)
  • 類的特性(通常是類的字段和屬性,可沒有這一行)
  • 類的操做(通常是類的方法或行爲)

它們前邊的符號有如下幾類:「+」表示public,「-」表示private,「#」表示protected工具

即最上邊的UML類圖表示代碼以下:學習

public class Student {
    private String name;
    private String sex;
    private int age;

    public void study() {
        System.out.println("study");
    }

    protected void sleep() {
        System.out.println("sleep");
    }

    public void eat() {
        System.out.println("eat");
    }
//get 和set方法和這個類的屬性無關
}

類的關係表示:

  1. 繼承關係(空心三角形加實線表示)
    UML圖入門UML圖學習UML類圖
public class SeniorSchool extends Student {

    public void graduate() {
        System.out.println("畢業");
    }
    public void cllegeEntranceExam() {
        System.out.println("高考");
    }
}
  1. 實現接口(空心三角形加虛線表示)
    UML圖入門UML圖學習UML類圖
  • 讓高三學再實現玩這個接口
public interface Play {
    void play();
}
public class SeniorSchool extends Student implements Play {

    public void graduate() {
        System.out.println("畢業");
    }

    public void cllegeEntranceExam() {
        System.out.println("高考");
    }
//實現接口方法
    @Override
    public void play() {
       System.out.println("高三學生玩");
    }
}
  1. 依賴關係(用虛線箭頭表示)
    所謂依賴關係,就是構造這個類的時候,能夠依賴其餘的類。好比:人類依賴水和空氣,學生也是人類,因此以下
  • Student有一個構造方法以下:
/**
     * Student的一個構造方法
     * 依賴於Air 和 Water
     *
     * @param air
     * @param water
     */
    public Student(Air air, Water water) {

    }
  1. 關聯關係(使用實線箭頭表示)

所謂關聯關係,其實就是這個類有一個屬性是其餘類,以下圖和代碼。this

UML圖入門UML圖學習UML類圖

  • 宿舍類
public class Dormitory {
    private String num;
}
  • 高一學生類
public class PrimaryStudent extends Student {

    private Dormitory dormitory;
}
  • 注意它和依賴關係的區別,有不少小夥伴很容易理解爲這纔是依賴關係
  1. 聚合關係(使用空心菱形和實線箭頭表示)
    UML圖入門UML圖學習UML類圖
    直接看代碼,一目瞭然,學校中有不少學生就是一個聚合關係。說這個學校多是有些難以被接受,若是是用學生羣來表示可能會更容易理解
public class School {
    private Student[] students;
}
  1. 合成(組合)關係(用實心菱形和實線箭頭表示)
  • 它表示的是一種強‘擁有’關係,和以前的依賴與關聯有很大的類似,就好比Stuent類中的這個name,sex,age屬性,它就是一種組合關係,它們是一個Student類的組成,由於在初始化一個Student對象時,這三個就必須有。雖然這三個的類型是一個基本類型,若是是一個類的話就更好理解了,可是「萬物皆對象」,也是能夠勉強理解的。
  • 爲了更好的理解,咱們就給Student這個類一個組合關係的Book類。

UML圖入門UML圖學習UML類圖

public class Student {
    private Book book;

    public Student(Book book) {
        this.book = book;
    }
}

歡迎關注個人微信公衆號「小魚與Java」,
小魚與Javacode

最後再貼上整個圖:orm

相關文章
相關標籤/搜索