您好,登錄后才能下訂單哦!
小編給大家分享一下UML類圖中的關系有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
UML類圖中的關系
UML類圖中的關系分為四種:泛化、依賴、關聯、實現;關聯關系又可以細化為聚合和組合。
1.泛化(Generalization)
UML類圖中的泛化是父類和子類之間的關系,子類繼承父類的所有結構和行為。在子類中可以增加新的結構和行為,也可以覆寫父類的行為。
2.依賴(Dependency)
依賴關系是一種使用關系,特定事物的改變有可能會影響到使用該事物的事物,反之不成立。在你想顯示一個事物使用另一個事物時使用。
通常情況下,依賴關系體現在某個類的方法使用另一個類作為參數。
如果模塊A調用模塊B提供的方法,或訪問模塊B中的某些數據成員(當然,在面向對象開發中一般不提倡這樣做),我們就認為模塊A依賴于模塊B,模塊A和模塊B之間發生了耦合。
3.關聯(Dependency)
關聯是一種結構化的關系,指一種對象和另一種對象有聯系。給定有關聯的兩個類,可以從一個類的對象得到另一個類的對象。UML類圖中關聯有兩元關系和多元關系。兩元關系是指一種一對一的關系,多元關系是一對多或多對一的關系。一般用實線連接有關聯的同一個類或不同的兩個類。當你想要表示結構化關系時使用關聯。
關聯關系是通過類的成員變量來實現的。
3.1聚合(Aggregation)
聚合是一種特殊的關聯。它描述了“hasa”關系,表示整體對象擁有部分對象。
關聯關系和聚合關系來語法上是沒辦法區分的,從語義上才能更好的區分兩者的區別。聚合是較強的關聯關系,強調的是整體與部分之間的關系。
與關聯關系一樣,聚合關系也是通過類的成員變量來實現的。
3.2組合(Composition)
組合是聚合的一種形式,它具有更強的擁有關系,強調整體與部分的生命周期是一致的。整體負責部分的生命周期的管理。如果整體被銷毀,部分也必須跟著一起被銷毀,如果所有者被復制,部分也必須一起被復制。
與關聯關系一樣,組合關系也是通過類的成員變量來實現的。
聚合和組合的區別在于:聚合關系是“has-a”關系,組合關系是“contains-a”關系;聚合關系表示整體與部分的關系比較弱,而組合比較強;聚合關系中代表部分事物的對象與代表聚合事物的對象的生存期無關,一旦刪除了聚合對象不一定就刪除了代表部分事物的對象。組合中一旦刪除了組合對象,同時也就刪除了代表部分事物的對象。
4.實現(Realization)
UML類圖中第四種關系就是實現,實現關系指定兩個實體之間的一個合約。換言之,一個實體定義一個合約,而另一個實體保證履行該合約。
類間關系有很多種,在大的類別上可以分為兩種:縱向關系、橫向關系。
縱向關系就是繼承關系,它的概念非常明確,也成為OO的三個重要特征之一,這里不過多的討論。
橫向關系較為微妙,按照UML的建議大體上可以分為四種:
依賴(Dependency)
關聯(Association)
聚合(Aggregation)
組合(Composition)
它們的強弱關系是沒有異議的:依賴<關聯<聚合<組合<泛化(繼承)
在UML系統開發中有三個主要的模型:
功能模型:從用戶的角度展示系統的功能,包括用例圖。
對象模型:采用對象,屬性,操作,關聯等概念展示系統的結構和基礎,包括UML類圖。
動態模型:展現系統的內部行為。包括序列圖,活動圖,狀態圖。
以上是“UML類圖中的關系有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。