技術分享 用UML類圖描述Java類
本文和大家重點討論一下用UML類圖描述Java類,雖然從歷史和基本理念方面來探討UML非常吸引人,但我們還是直接從Java代碼開始,看看UML類圖如何描述Java類,再在敘述過程中插入一些歷史和基本理念方面的知識。
用UML類圖描述Java類
本文從Java程序員的角度闡述UML和對象建模問題,是一個深入淺出的實用性介紹。雖然從歷史和基本理念方面來探討UML非常吸引人,但我們還是直接從Java代碼開始,看看UML類圖如何描述Java類,再在敘述過程中插入一些歷史和基本理念方面的知識。
UML類圖
在Java中,我們用下面的代碼聲明兩個公用類,每一個Java類放入一個文件,文件的名字就是Java類的名字加上擴展名.java:
- publicclassPerson{}
- publicclassOrganization{}
UML是UnifiedModelingLanguage的縮寫,即“統(tǒng)一建模語言”。與Java不同,UML是一種圖形化的建模“語言”,它用一個矩形來表示一個類,在矩形的內部寫上類的名稱,一個類圖可以放入多個類。用矩形表示類,是UML中U(Unified)起的作用。在UML的第一個版本出現(xiàn),每一個對象建模專家都有自己的一套符號,一些人用點表示類,一些人用圓圈表示類,還有一些人用圓角矩形表示類。顯然,這很容易引起混亂。后來,Rational公司的三個專家——GradyBooch、JamesRaumbaugh、IvarJacobson達成了一致意見,同意“統(tǒng)一”他們各自使用的符號,UML終于創(chuàng)立,符號之爭也終于落下了帷幕。圖一就是上面兩個Java類的UML類圖:
圖一:有二個類的簡單類圖
如果要描述一系列類的內部結構以及它們相互之間的關系,UML類圖是非常有用的。例如,在許多書籍中,我們可以看到作者用類圖來描述各個類之間的關系。
顯然,空的類沒有什么實際意義。我們要為Person類加上一些實例變量和簡單的方法。下面是Person類的代碼,已經過簡化處理,不含任何注釋:
圖二顯示了Person類的UML圖??梢钥吹?,UML用“+”和“-”符號分別表示public和private修飾符。UML只顯示操作和屬性類型之類的特征信息,操作的結果在行未的冒號之后聲明。
圖二:在UML類圖中描述屬性和方法
由于UML類圖不包含方法的具體實現(xiàn),所以在UML類圖中查看屬性和方法等基本信息要比直接查看Java源代碼更方便一些。在創(chuàng)建UML圖時,人們常常忽略或隱藏各種細節(jié)信息,以便查看和掌握類的整體結構。例如,UML類圖常常只顯示出屬性和操作的名稱,簡單的訪問器方法(諸如getXXX()、setXXX()之類的方法)也常常不顯示出來。圖三就是簡化圖二得到的結果。
圖三:經過簡化的Person類UML圖
圖三清楚地顯示出了Person類主要的屬性和方法。但是,單個類的UML圖還不是很有用。只有包含多個類且描述了多個類之間關系的UML圖,才具有實用意義。UML用兩個類之間的連線來表示兩者之間的關系,不同的線型表示不同的關系,在UML類圖中最常見的關系是關聯(lián)關系。
【編輯推薦】