91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現UML中關聯、組合與聚合等關系的辨析

發布時間:2022-01-11 16:40:14 來源:億速云 閱讀:122 作者:柒染 欄目:編程語言

本篇文章為大家展示了如何實現UML中關聯、組合與聚合等關系的辨析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

以前學習面向對象的時候,常聽到介紹對象之間的各種關系,常見的有關聯,組合與聚合。

關聯:

關聯是一種最普遍和常見的關系形式。一般是指一個對象可以發消息給另外一個對象。典型的實現情況下指某個對象有一個指針或者引用指向一個實體變量,當通過方法的參數來傳遞或者創建本地變量來訪問這種情況也可以稱之為關聯。

典型的代碼如下:

class A  {      private B itemB;  }

也可能有如下的形式:

class A  {      void test(B b) {...}  }

籠統的情況下,一般兩個對象的引用,參數傳遞等形式產生的關系,我們都可以稱之為關聯關系。

聚合(aggregation):

聚合表示的是一種has-a的關系,同時,它也是一種整體-部分關系。它的特點在于,它這個部分的生命周期并不由整體來管理。也就是說,當整體這個對象已經不存在的時候,部分的對象還是可能繼續存在的。它的uml圖表示形式如下:

如何實現UML中關聯、組合與聚合等關系的辨析

我們用一個空心的箭頭來表示聚合關系。

籠統的說聲明周期管理還是比較模糊。我們就以如圖的Person和Address類來進一步的解釋。假設我們要定義這兩個對象,對于每個人來說,他有一個關聯的地址。人和地址的關系是has-a的關系。但是,我們不能說這個地址是這個人的一個組成部分。同時,我們建立地址對象和人的對象是可以相對獨立存在的。

用代碼來表示的話,典型的代碼樣式如下:

public class Address  {  . . .  }   public class Person  {       private Address address;       public Person(Address address)       {           this.address = address;       }       . . .  }

我們通常通過如下的方式來使用Person對象:

Address address = new Address();  Person person = new Person(address);

或者:

Person person = new Person( new Address() );

我們可以看到,我們是創建了一個獨立的Address對象,然后將這個對象傳入了Person的構造函數。當Person對象聲明周期結束的時候,Address對象如果還有其他指向它的引用,是可能繼續存在的。也就是說,他們的聲明周期是相對獨立的。

組合(Composition):

當理解了聚合的關系之后,再來看組合的關系就相對來說要好很多。和聚合比起來,組合是一種更加嚴格的has-a關系。它表示一種嚴格的組成關系。以汽車和引擎為例子,引擎是汽車的一個組成部分。他們是一種嚴格的部分組成關系,因此他們的聲明周期也應該是一致的。也就是說引擎的聲明周期是通過汽車對象來管理。

組合的uml圖表示如下:

如何實現UML中關聯、組合與聚合等關系的辨析

一般用一個實心的箭頭表示組合。

組合代碼的典型示例如下:

public class Engine  {  . . .   }   public class Car  {      Engine e = new Engine();      .......  }

Engine對象是在Car對象里面創建的,所以在Car對象生命周期結束的時候,Engine對象的生命周期也同樣結束了。

上述內容就是如何實現UML中關聯、組合與聚合等關系的辨析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

uml
AI

光山县| 横峰县| 宁陵县| 广宗县| 商水县| 贵德县| 荔浦县| 康平县| 康乐县| 望谟县| 大田县| 和顺县| 资源县| 额尔古纳市| 盐边县| 任丘市| 辉县市| 化隆| 子洲县| 贵溪市| 大关县| 治多县| 曲阳县| 利川市| 巴中市| 隆昌县| 丰都县| 大竹县| 贺州市| 枣阳市| 漳浦县| 宝应县| 廊坊市| 聂拉木县| 临桂县| 休宁县| 离岛区| 兰州市| 宾川县| 无锡市| 永州市|