天天看點

UML之類圖

       類圖,英文明曰:class  diagram,那麼類是經過怎樣神奇的蛻變,變成了類圖呢?大家都知道,類是具有相似結構、行為和關系的一組對象的描述符,類是面向對象系統中最重要的構造塊,類圖顯示了一組類、接口、協作以及他們之間的關系。在uml中問題域最終要被逐漸轉化,通過類來模組化,通過程式設計語言構件這些類進而實作系統,類加上他們之間的關系就構成了類圖,類圖中還可以包括接口、包等元素,也可以包含對象等執行個體。

     現在我們一起來學習一下類圖,首先我們一起來看看,類圖之間存在哪些關系:

UML之類圖

    下面我們一起來對類圖之間的關系進行逐層分解,首先,我們來看一下關聯中的聚合,聚合,從她的字面上的意思就是大家夥聚到一起沒有特别強的限制力,強調的是整體與部分之間的關系,下面我們來看一張聚合的圖:

UML之類圖

    大雁和大雁群她們之間的關系就屬于聚合關系,大雁進行遷徙的時候,一隻大雁屬于一個大雁群,一個雁群可以有很多大雁,大雁離開了雁群還是大雁,雁群離開了其中某一隻大雁,照樣還有其他的大雁,大雁可以脫離雁群獨立存在。接下來,關聯中的組合關系,從她的字面上,我們很容易了解,大家夥組裝在一起,具有很強的限制力,下面我們來看一張組合的圖:

UML之類圖

       大雁與羽毛和翅膀之間的關系就是組合,沒有大雁就沒有翅膀和羽毛,隻有翅膀和羽毛也不可能是大雁,翅膀和羽毛離開大雁沒有了存在的意義,大雁離開了翅膀和羽毛也不能構成大雁,翅膀和羽毛不能脫離大雁獨立存在。組合是聚合的一種形式,她具有更強的擁有關系,強調整體與部分的生命周期是一緻的,整體負責部分的生命周期的管理,如果整體被銷毀,部分也必須跟着一起被銷毀,如果所有者被複制,部分也必須一起被複制。

        接下來,我們一起來看看依賴,先看下面這張圖:

UML之類圖

        依賴,描述的是一種使用關系,她說明一個事物的規格說明的變化可能影響到他使用的另一個事物,反之未必,一如我們上圖所示,顧客和超市構成一種依賴關系,特别需要注意的是,箭頭指向被依賴的一方。接下來,我們一起來看看泛化關系,如下圖:

UML之類圖

       泛化,簡單的來說,a是b和c的父類,b、c具有公共類也就是父類a,說明a是b和c的一般化,在我們的uml當中,對于泛化關系有三個要求,首先,子類和父類應該完全一緻,父類所具有的屬性、操作,子類應該都有,再者,子類中除了與父類一緻的資訊以外,還包括額外的資訊;最後可以使用父類執行個體的地方,也可以使用子類的執行個體。現在讓我們一起來看看最後一種關系,實作,如下圖:

UML之類圖

       實作關系,指定兩個實體之間的一種合約,換言之,一個實體定義一個合約,而另一個實體保證履行合約。下面我們一起來看看這四種關系之間具有怎樣的關系呢,如下圖:

UML之類圖

弄清了類圖中的四種關系,我們再來一起學習一下,深入類圖讨論以及類圖的構成:

UML之類圖

    下面,是我根據機房機房系統畫的類圖:

UML之類圖

       類圖是用來顯示模型的靜态結構,特别是模型中存在的類、類的内部結構以及他們與其他類的關系等,還有一點需要特别注意,類圖不顯示暫時性資訊。在uml這個大家族中,類圖同樣也占據着重要的地位,她不但是設計人員關心的核心,更是實作人員關注的核心,模組化工具也主要根據類圖來産生代碼。簡單的來說類就是多個對象共同的屬性方法、比如羽衣甘藍、三色堇、蝴蝶蘭、風信子、天堂鳥她們都是類,她們的共同屬性是根莖葉,共同的方法就是開花結果。

       學習類圖的過程中,首先我們要做的工作就是确定類,抽象出我們需要的類,然後根據實際情況确定類的屬性和操作,确定他們之間的關系,uml之旅,未完,待續.......

繼續閱讀