因爲後面要理清楚spring和設計模式中類與類之間關係,我們來看看如何使用powerDesigner繪製類圖
安裝使用
你要去下載powerDesiger,一路下一步安裝好
打開,點【file】-【New Model】
選擇【Model types】-【Object-Oriented Model】-【Class Diagram】-【java】-【ok】
利用右側的toolbox構建
常見類關係
既然要畫類圖,類與類之間的關係你是要知道的:
泛化 generalization
實現 Realization
關聯 Association
聚合 Aggregation
組合 Composition
依賴 Dependency
泛化
子類繼承父類,連線使用generalization
實現
實現類繼承接口,連線使用Realization
關聯
是一種擁有的關係, 它使一個類知道另一個類的屬性和方法,這個概念聽起來感覺有點蒙,其實吧,就是一個對象A中持有對象B的引用,這樣對象B中的屬性和方法是不是A也知道了,就是這個意思,在實際的代碼中體現在一個類上聲明一個成員變量
類A中有類B的引用
類Person 中有 類 Address
聚合
是整體與部分的關係, 且部分可以離開整體而單獨存在,如車和輪胎是整體和部分的關係,輪胎離開車仍然可以存在
聚合關係是關聯關係的一種,是強的關聯關係;關聯和聚合在語法上無法區分,必須考察具體的邏輯關係
比如一個學校有高中部和初中部,這些學生加起來都是屬於這個學校的,那麼從聚合的概念上講整體就是這個學校,部分就是學生了,且部分可以離開整體而單獨存在,這意思是說學生可以轉校去別的學校,但是這個學校還是存在的,不會因爲一個學生轉校了找個學校就沒了,
箭頭指向:帶空心菱形的實心線,菱形指向整體
組合
是整體與部分的關係, 但部分不能離開整體而單獨存在. 如公司和部門是整體和部分的關係, 沒有公司就不存在部門
組合關係是關聯關係的一種,是比聚合關係還要強的關係,它要求普通的聚合關係中代表整體的對象負責代表部分的對象的生命週期
代碼體現:成員變量
箭頭指向:帶實心菱形的實線,菱形指向整體
比如一個大廈肯定是由很多種材料構成的,如果沒有這些材料,這大廈就不存在了,意思是這個大廈生命週期over了,
依賴
是一種使用的關係, 即一個類的實現需要另一個類的協助,所以要儘量不使用雙向的互相依賴
代碼表現:局部變量、方法的參數或者對靜態方法的調用
箭頭指向:帶箭頭的虛線,指向被使用者
各種關係的強弱順序
泛化 >實現>組合> 聚合> 關聯> 依賴
最後把這些關係在java代碼中的體現總結下:
- 依賴關係:關係對象出現在局部變量或者方法的參數裏,或者關係類的靜態方法被調用
(2) 關聯關係:關係對象出現在實例變量中
(3) 聚合關係:關係對象出現在實例變量中
(4) 組合關係:關係對象出現在實例變量中
(5) 泛化關係: extends
(6) 實現: implements
powerDesigner15.6過期破
解請關注二維碼,回覆powerDesigner