深入學習UML對象及關系圖
本文和大家重點討論一下UML對象及關系圖,主要向大家介紹一下UML對象圖和UML關系圖,希望通過本文的學習你對UML對象及關系圖有明確的認識。
UML對象圖
對象與類的關系
對象的概念與特性
◆對象代表一個單獨的、可確認的物體、單元或實體,它可以是具體的也可以是抽象的,在問題領域里有確切定義的角色。換句話說,對象是邊界非常清楚的任何事物
◆狀態(屬性):對象的狀態包括對象的所有屬性(通常是靜態的)和這些屬性的當前值(通常是動態的)
◆行為(方法,事件):沒有一個對象是孤立存在的,對象可以被操作,也可以操作別的對象。而行為就是一個對象根據它的狀態改變和消息傳送所采取的行動和所做出的反應
◆標識(名字):為了將一個對象與其它所有對象區分開來,我們通常會給它起一個“標識”
UML對象及關系圖中對象與類
◆對象是一個存在于時間和空間中的具體實體,而類僅代表一個抽象,抽象出對象的“本質”。
◆類是共享一個公用結構和一個公共行為對象集合
◆類是靜態的,對象是動態的;類是一般化,對象是個性化;類是定義,對象是實例;類是抽象、對象是具體
UML關系圖
類之間的UML關系圖軟件開發
UML對象及關系圖中類間關系有很多種,在大的類別上可以分為兩種:縱向關系、橫向關系。
縱向關系就是繼承關系,它的概念非常明確,也成為OO的三個重要特征之一,這里不過多的討論。
橫向關系較為微妙,按照UML的建議大體上可以分為四種:
1.依賴(Dependency)
2.關聯(Association)
3.聚合(Aggregation)
4.組合(Composition)
它們的強弱關系是沒有異議的:依賴<關聯<聚合<組合
然而UML對象及關系圖中它們四個之間的差別卻又不那么好拿捏,需要好好體會。
1.依賴:
UML表示法:虛線+箭頭
關系:"...usesa..."
UML對象及關系圖中的依賴關系最為簡單,也***理解,所謂依賴就是某個對象的功能依賴于另外的某個對象,而被依賴的對象只是作為一種工具在使用,而并不持有對它的引用。
2.關聯:
UML表示法:實線+箭頭
關系:"...hasa..."
UML對象及關系圖中所謂關聯就是某個對象會長期的持有另一個對象的引用,而二者的關聯往往也是相互的。關聯的兩個對象彼此間沒有任何強制性的約束,只要二者同意,可以隨時解除關系或是進行關聯,它們在生命期問題上沒有任何約定。被關聯的對象還可以再被別的對象關聯,所以關聯是可以共享的。
3.聚合:
UML表示法:空心菱形+實線+箭頭
關系:"...ownsa..."
UML對象及關系圖中的聚合是強版本的關聯。它暗含著一種所屬關系以及生命期關系。被聚合的對象還可以再被別的對象關聯,所以被聚合對象是可以共享的。雖然是共享的,聚合代表的是一種更親密的關系。
4.組合:
UML表示法:實心菱形+實線+箭頭
關系:"...isapartof..."
UML對象及關系圖中的組合是關系當中的***版本,它直接要求包含對象對被包含對象的擁有以及包含對象與被包含對象生命期的關系。被包含的對象還可以再被別的對象關聯,所以被包含對象是可以共享的,然而絕不存在兩個包含對象對同一個被包含對象的共享。
【編輯推薦】