UML
類圖能夠很清晰的表達程序的設計,在程序開發中各類類存在不一樣的依賴關係,在UML
中使用不一樣的箭頭來表達類之間的關係,例如依賴關係、關聯關係、泛化關係、實現關係、組合關係和聚合關係*。設計模式
能夠使用StartUML
工具或者Rose
工具來畫類圖,可是已經2019
年啦。咱們有強大的IDEA
開發工具,咱們能夠安裝插件來畫類圖,下面就是一個類圖。app
依賴關係(dependency
),在UML
類圖中使用帶普通箭頭的虛線表示,以下所示:工具
UserService
類中使用啦成員變量UserMapper
,故能夠描述爲UserService
依賴UserMapper
。UserService
類中的saveUser(User user)
方法參數使用啦User
,故能夠描述爲UserService
依賴User
。UserService
類中的getCorp()
方法的返回類型是Corp
類型,故能夠描述爲UserService
依賴Corp
。依賴關係就是一個類A中使用到對方類B,例如私有變量使用B類,方法參數使用B類,構造方法等,那麼就能夠說是A類依賴B類。在UML類圖中就能夠使用依賴關係表示。學習
泛化關係(generalization
)也稱之爲繼承關係,是依賴關係的一種特例。在UML
類圖中使用帶實心三角箭頭的實線表示,以下所示:開發工具
若是A類和B類存在類繼承關係,那麼在UML類圖中就能夠使用泛化關係來描述。插件
實現關係(Implementation
),是依賴關係的一種特例,在UML
類圖中使用帶實心三角箭頭的虛線表示,以下所示:設計
若是A類實現了B接口,就能夠使用實現關係描述。代理
關聯關係(association
),表示的是類與類之間的聯繫,是依賴關係的一種特例,在UML
類圖中使用帶普通箭頭的實線表示,關聯關係中有分爲單向關聯關係和雙向關聯關係。以下所示的單向一對一關聯關係:code
聚合關係(aggregation
),表示的是總體與部分之間的關係,屬於關聯關係的一種特例,因此也具備導航性和多重性,表示的是總體和部分能夠分開,例如筆記本和鼠標,筆記本能夠離開鼠標,因此他們之間的關係就能夠使用聚合關係來描述,在UML
類圖中使用空心的菱形箭頭實線表示的,cdn
組合關係(composition
),表示的是總體與部分不可分開,例如,人與身份證,合法公民都應該有本身的一個身份證,且不可缺乏,因此,他們之間就能夠稱之爲組合關係,在UML
類圖中使用帶實心的菱形箭頭的實線表示,以下所示:
UML類圖是學習和使用設計模式的前提,在設計模式中基本能夠歸納爲23種設計模式
建立型模式,多用於說明如何建立對象:
單例模式
、抽象工廠模式、原型模式、建造者模式、工廠模式
,其中單例模式
是爲了解決如何保證系統中某一個類只有一個實例,原型模式
是爲類解決對象的拷貝問題。結構性模式:
適配器模式
、橋接模式、裝飾模式
、組合模式、外觀模式、代理模式
等,結構型模式更多的是站在系統設計的角度去考慮問題,例如裝飾者模式
能夠解決類爆炸的問題,在《圖解設計模式》有說明。行爲型模式:主要是站在方法的角度上作設計:
觀察者模式
、責任鏈模式
、策略模式、解釋器模式、命令模式、中介者模式、迭代器模式、狀態模式、模版方法模式等等。