UML类图---类与类图的解析
1. 類
?????? 類(Class)封裝了數(shù)據(jù)和行為,是面向?qū)ο蟮闹匾M成部分,它是具有相同屬性、操作、關(guān)系的對象集合的總稱。在系統(tǒng)中,每個類都具有一定的職責(zé),職責(zé)指的是類要完成什么樣的功能,要承擔(dān)什么樣的義務(wù)。一個類可以有多種職責(zé),設(shè)計得好的類一般只有一種職責(zé)。在定義類的時候,將類的職責(zé)分解成為類的屬性和操作(即方法)。類的屬性即類的數(shù)據(jù)職責(zé),類的操作即類的行為職責(zé)。設(shè)計類是面向?qū)ο笤O(shè)計中最重要的組成部分,也是最復(fù)雜和最耗時的部分。
????? 在軟件系統(tǒng)運(yùn)行時,類將被實(shí)例化成對象(Object),對象對應(yīng)于某個具體的事物,是類的實(shí)例(Instance)。
????? 類圖(Class Diagram)使用出現(xiàn)在系統(tǒng)中的不同類來描述系統(tǒng)的靜態(tài)結(jié)構(gòu),它用來描述不同的類以及它們之間的關(guān)系。
????? 在系統(tǒng)分析與設(shè)計階段,類通常可以分為三種,分別是實(shí)體類(Entity Class)、控制類(Control Class)和邊界類(Boundary Class),下面對這三種類加以簡要說明:
???? (1) 實(shí)體類:實(shí)體類對應(yīng)系統(tǒng)需求中的每個實(shí)體,它們通常需要保存在永久存儲體中,一般使用數(shù)據(jù)庫表或文件來記錄,實(shí)體類既包括存儲和傳遞數(shù)據(jù)的類,還包括操作數(shù)據(jù)的類。實(shí)體類來源于需求說明中的名詞,如學(xué)生、商品等。
???? (2) 控制類:控制類用于體現(xiàn)應(yīng)用程序的執(zhí)行邏輯,提供相應(yīng)的業(yè)務(wù)操作,將控制類抽象出來可以降低界面和數(shù)據(jù)庫之間的耦合度。控制類一般是由動賓結(jié)構(gòu)的短語(動詞+名詞)轉(zhuǎn)化來的名詞,如增加商品對應(yīng)有一個商品增加類,注冊對應(yīng)有一個用戶注冊類等
? ?? (3) 邊界類:邊界類用于對外部用戶與系統(tǒng)之間的交互對象進(jìn)行抽象,主要包括界面類,如對話框、窗口、菜單等。
???? 在面向?qū)ο蠓治龊驮O(shè)計的初級階段,通常首先識別出實(shí)體類,繪制初始類圖,此時的類圖也可稱為領(lǐng)域模型,包括實(shí)體類及其它們之間的相互關(guān)系。
2. 類的UML圖示
???? 在UML中,類使用包含類名、屬性和操作且?guī)в蟹指艟€的長方形來表示,如定義一個Employee類,它包含屬性name、age和email,以及操作modifyInfo(),在UML類圖中該類如圖1所示:
????????????????????????????????????????????????????????????????????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????
圖1對應(yīng)的Java代碼片段如下:
public class Employee {private String name;private int age;private String email;public void modifyInfo() {......} }在UML類圖中,類一般由三部分組成:
?? (1) 第一部分是類名:每個類都必須有一個名字,類名是一個字符串。
?? (2) 第二部分是類的屬性(Attributes):屬性是指類的性質(zhì),即類的成員變量。一個類可以有任意多個屬性,也可以沒有屬性
UML規(guī)定屬性的表示方式為:
可見性 名稱:類型 [ = 缺省值 ]
其中:
- “可見性”表示該屬性對于類外的元素而言是否可見,包括公有(public)、私有(private)和受保護(hù)(protected)三種,在類圖中分別用符號+、-和#表示。
- “名稱”表示屬性名,用一個字符串表示。
- “類型”表示屬性的數(shù)據(jù)類型,可以是基本數(shù)據(jù)類型,也可以是用戶自定義類型。
- “缺省值”是一個可選項(xiàng),即屬性的初始值。
??? (3) 第三部分是類的操作(Operations):操作是類的任意一個實(shí)例對象都可以使用的行為,是類的成員方法。
UML規(guī)定操作的表示方式為:
可見性 名稱(參數(shù)列表) [ : 返回類型]
其中:
- “可見性”的定義與屬性的可見性定義相同。
- “名稱”即方法名,用一個字符串表示。
- “參數(shù)列表”表示方法的參數(shù),其語法與屬性的定義相似,參數(shù)個數(shù)是任意的,多個參數(shù)之間用逗號“,”隔開。
- “返回類型”是一個可選項(xiàng),表示方法的返回值類型,依賴于具體的編程語言,可以是基本數(shù)據(jù)類型,也可以是用戶自定義類型,還可以是空類型(void),如果是構(gòu)造方法,則無返回類型。
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????? 由于在Java語言中允許出現(xiàn)內(nèi)部類,因此可能會出現(xiàn)包含四個部分的類圖,如圖3所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
總結(jié)
以上是生活随笔為你收集整理的UML类图---类与类图的解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RK3399中IO域电压的选择
- 下一篇: thymeleaf 拼接src路径