av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

學(xué)習(xí)筆記用Visio畫UML圖類結(jié)構(gòu)圖(進(jìn)階篇)

本文和大家繼續(xù)學(xué)習(xí)用Visio畫UML圖類結(jié)構(gòu)圖,上一篇文章中說(shuō)明了類結(jié)構(gòu)圖的基本畫法。要真正要完成實(shí)用的類圖,還要有許多工作要做。

用Visio畫UML圖類結(jié)構(gòu)圖(進(jìn)階篇)

上一篇文章中說(shuō)明了類結(jié)構(gòu)圖的基本畫法。要真正要完成實(shí)用的類圖,還要有許多工作要做。

類之間的關(guān)系

繼承關(guān)系

用Visio畫UML圖中繼承關(guān)系是最容易理解的關(guān)系。畫成圖的話就像下面這樣。面向?qū)ο蟮恼f(shuō)法就是is-a關(guān)系。也就是說(shuō)Class2isaClass1。在C++中我們說(shuō)Class2是Class1的派生類,或者說(shuō)Class1是Class2的基類。

聚集和組成

從容易理解的關(guān)系說(shuō)起.經(jīng)常有一個(gè)類是另一格類的數(shù)據(jù)成員的情況。在UML中表現(xiàn)為,聚集(aggregation)和組成(composition)。

從圖上來(lái)看,用Visio畫UML圖時(shí)這兩種關(guān)系都表現(xiàn)為一端是菱形的直線。其中有菱形的一端是整體,另外一端是部分。區(qū)別就是菱形是空心還是實(shí)心的。從C++曾序來(lái)看的話,如果圖畫成實(shí)心菱形的話,Class1就要負(fù)責(zé)Class2的創(chuàng)建和銷毀。更準(zhǔn)確的說(shuō),就是如果Class1不存在了,Class2也一定不存在。例如象下面的程序。 

 
 
 
 
  1. classClass2  
  2. {  
  3. };  
  4.  
  5. classClass1  
  6. {  
  7. Class2m_objClass2;  
  8. }  
  9.  

 當(dāng)然也有下面的情況 

 
 
 
 
  1. classClass2  
  2. {  
  3. };  
  4. classClass1  
  5. {  
  6. Class1();  
  7. ~Class1();  
  8. Class2*m_pClass2Obj;  
  9. };  
  10.  

 光看類的聲明就不行了。這是就需要看類的實(shí)現(xiàn)部分了。 

 
 
 
 
  1. Class1::Class1()  
  2. {  
  3. m_pClass2Obj=newClass1;  
  4. }  
  5. Class1::~Class1()  
  6. {  
  7. deletem_pClass2Obj;  
  8. m_pClass2=NULL;  
  9. }  
  10.  

 組成(Composition)關(guān)系,如果在Class1的對(duì)象銷毀的時(shí)候,比如在析構(gòu)函數(shù)中沒(méi)有將數(shù)據(jù)成員銷毀的代碼,那么這種關(guān)系就是聚集(aggregation)關(guān)系。當(dāng)然,銷毀數(shù)據(jù)成員的代碼,會(huì)有很多種。

依賴關(guān)系

用Visio畫UML圖中依賴關(guān)系就是在以個(gè)類中使用了另一個(gè)類。例如下面的代碼

 
 
 
 
  1. Class1::DoSomething()  
  2. {  
  3. Class3obj;  
  4. obj.DoClass3Work();  
  5. }  
  6.  

 就是這樣的情況。畫成圖的話就像下面這樣。


網(wǎng)站欄目:學(xué)習(xí)筆記用Visio畫UML圖類結(jié)構(gòu)圖(進(jìn)階篇)
分享路徑:http://uogjgqi.cn/article/cciieip.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流