設計模式之UML類圖

設計模式之UML類圖

UML類圖能夠很清晰的表達程序的設計,在程序開發中各類類存在不一樣的依賴關係,在UML中使用不一樣的箭頭來表達類之間的關係,例如依賴關係關聯關係泛化關係實現關係組合關係聚合關係*。設計模式

能夠使用StartUML工具或者Rose工具來畫類圖,可是已經2019年啦。咱們有強大的IDEA開發工具,咱們能夠安裝插件來畫類圖,下面就是一個類圖。app

image-20190712233955913

1.1.依賴關係

依賴關係dependency),在UML類圖中使用帶普通箭頭的虛線表示,以下所示:工具

image-20190713001756745

  • UserService類中使用啦成員變量UserMapper,故能夠描述爲UserService依賴UserMapper
  • UserService類中的saveUser(User user)方法參數使用啦User,故能夠描述爲UserService依賴User
  • UserService類中的getCorp()方法的返回類型是Corp類型,故能夠描述爲UserService依賴Corp

依賴關係就是一個類A中使用到對方類B,例如私有變量使用B類,方法參數使用B類,構造方法等,那麼就能夠說是A類依賴B類。在UML類圖中就能夠使用依賴關係表示。學習

1.2.泛化關係

泛化關係generalization)也稱之爲繼承關係,是依賴關係的一種特例。在UML類圖中使用帶實心三角箭頭的實線表示,以下所示:開發工具

image-20190713002745702

若是A類和B類存在類繼承關係,那麼在UML類圖中就能夠使用泛化關係來描述。插件

1.3.實現關係

實現關係Implementation),是依賴關係的一種特例,在UML類圖中使用帶實心三角箭頭的虛線表示,以下所示:設計

image-20190713003929571

若是A類實現了B接口,就能夠使用實現關係描述。代理

1.4.關聯關係

關聯關係association),表示的是類與類之間的聯繫,是依賴關係的一種特例,在UML類圖中使用帶普通箭頭的實線表示,關聯關係中有分爲單向關聯關係和雙向關聯關係。以下所示的單向一對一關聯關係:code

image-20190713143138513

1.5.聚合關係

聚合關係aggregation),表示的是總體與部分之間的關係,屬於關聯關係的一種特例,因此也具備導航性和多重性,表示的是總體和部分能夠分開,例如筆記本和鼠標,筆記本能夠離開鼠標,因此他們之間的關係就能夠使用聚合關係來描述,在UML類圖中使用空心的菱形箭頭實線表示的,cdn

1.6.組合關係

組合關係composition),表示的是總體與部分不可分開,例如,人與身份證,合法公民都應該有本身的一個身份證,且不可缺乏,因此,他們之間就能夠稱之爲組合關係,在UML類圖中使用帶實心的菱形箭頭的實線表示,以下所示:

image-20190713145211242

1.7.設計模式簡介

UML類圖是學習和使用設計模式的前提,在設計模式中基本能夠歸納爲23種設計模式

建立型模式,多用於說明如何建立對象:單例模式、抽象工廠模式、原型模式、建造者模式、工廠模式,其中單例模式是爲了解決如何保證系統中某一個類只有一個實例,原型模式是爲類解決對象的拷貝問題。

結構性模式:適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、代理模式等,結構型模式更多的是站在系統設計的角度去考慮問題,例如裝飾者模式能夠解決類爆炸的問題,在《圖解設計模式》有說明。

行爲型模式:主要是站在方法的角度上作設計:觀察者模式責任鏈模式、策略模式、解釋器模式、命令模式、中介者模式、迭代器模式、狀態模式、模版方法模式等等。

相關文章
相關標籤/搜索