乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      UML類圖介紹及畫法

       歸葉米古 2017-05-03

      箭頭:

      指向父類或接口。
      指向依賴物。
      指向子元素。

       

       

       

      繼承、實(shí)現(xiàn)是三角型箭頭,其他都為箭頭

      組合、聚合都有一個(gè)菱形端,且都為實(shí)線,其他都無(wú)菱形端

      繼承是實(shí)線,實(shí)現(xiàn)是虛線

      關(guān)聯(lián)是實(shí)線

      依賴是虛線

       

              一般化關(guān)系/泛化/繼承

              實(shí)現(xiàn)

       

              關(guān)聯(lián)

              聚合

                  組合/合成 

       

              依賴

       

      傳統(tǒng)應(yīng)用程序設(shè)計(jì)中所說(shuō)的依賴一般指“類之間的關(guān)系”,那先讓我們復(fù)習(xí)一下類之間的關(guān)系:

           泛化:表示類與類之間的繼承關(guān)系、接口與接口之間的繼承關(guān)系;

           實(shí)現(xiàn):表示類對(duì)接口的實(shí)現(xiàn);

           依賴:當(dāng)類與類之間有使用關(guān)系時(shí)就屬于依賴關(guān)系,不同于關(guān)聯(lián)關(guān)系,依賴不具有“擁有關(guān)系”,而是一種“相識(shí)關(guān)系”,只在某個(gè)特定地方(比如某個(gè)方法體內(nèi))才有關(guān)系。

           關(guān)聯(lián):表示類與類或類與接口之間的依賴關(guān)系,表現(xiàn)為“擁有關(guān)系”;具體到代碼可以用實(shí)例變量來(lái)表示;

           聚合:屬于是關(guān)聯(lián)的特殊情況,體現(xiàn)部分-整體關(guān)系,是一種弱擁有關(guān)系;整體和部分可以有不一樣的生命周期;是一種弱關(guān)聯(lián);

       

           組合:屬于是關(guān)聯(lián)的特殊情況,也體現(xiàn)了體現(xiàn)部分-整體關(guān)系,是一種強(qiáng)“擁有關(guān)系”;整體與部分有相同的生命周期,是一種強(qiáng)關(guān)聯(lián);

       

      1. 類(Class

      一般包含3個(gè)組成部分。第一個(gè)是類名;第二個(gè)是屬性(attributes);第三個(gè)是該類提供的方法(類的性質(zhì)可以放在第四部分;如果類中含有內(nèi)部類,則會(huì)出現(xiàn)第五個(gè)組成部分)。類名部分是不能省略的,其他組成部分可以省略。

       

      類名書寫規(guī)范:正體字說(shuō)明類是可被實(shí)例化的,斜體字說(shuō)明類為抽象類。

       

      屬性和方法書寫規(guī)范:修飾符 [描述信息] 屬性、方法名稱 [參數(shù)] [:返回類型|類型]

       

      屬性和方法之前可附加的可見(jiàn)性修飾符:

       

      加號(hào)(+)表示public;減號(hào)(-)表示private;#號(hào)表示protected;省略這些修飾符表示具有package(包)級(jí)別的可見(jiàn)性。

            如果屬性或方法具有下劃線,則說(shuō)明它是靜態(tài)的。

               描述信息使用 << 開頭和使用 >> 結(jié)尾。

               類的性質(zhì)是由一個(gè)屬性、一個(gè)賦值方法和一個(gè)取值方法組成。書寫方式和方法類似。

      1

       

      Java代碼  收藏代碼
      1. public class TaxCalculator  
      2. {        
      3.          private longtaxRate ;  
      4.          private intsalary;  
      5.   
      6.          public TaxCalculator(long taxRate)  
      7.          {  
      8.                    this.taxRate = taxRate ;  
      9.          }  
      10.   
      11.         public long countTax()  
      12.          {  
      13.                   return taxRate*salary;  
      14.          }  
      15.   
      16.          public int getSalary()  
      17.          {  
      18.                    return salary;  
      19.          }  
      20.   
      21.          public void setSalary(int salary)  
      22.          {  
      23.                    this.salary = salary;  
      24.          }  
      25.   
      26. }   
       

      TaxCalculator

      -taxRate:long

      +TaxCalculator(a:long)

      +countTax():long

      salary:long

       

            
      2.
      包(Package

       

      包是一種常規(guī)用途的組合機(jī)制。UML中的一個(gè)包直接對(duì)應(yīng)于Java中的一個(gè)包。在Java中,一個(gè)包可能含有其他包、類或者同時(shí)含有這兩者。進(jìn)行建模時(shí),通常使用邏輯性的包,用于對(duì)模型進(jìn)行組織;使用物理性的包,用于轉(zhuǎn)換成系統(tǒng)中的Java包。每個(gè)包的名稱對(duì)這個(gè)包進(jìn)行了惟一性的標(biāo)識(shí)。:

       



       

      3. 接口(Interface

       

      接口是一系列操作的集合,它指定了一個(gè)類所提供的服務(wù)。它直接對(duì)應(yīng)于Java中的一個(gè)接口類型。接口的表示有大概兩種方式。具體畫法見(jiàn)下例:

       

      例:

       

      Java代碼  收藏代碼
      1. public interface TaxCalculator  
      2. {  
      3.          public long countTax();  
      4.   
      5.          public int getSalary();  
      6.   
      7.          public void setSalary(int salary);  
      8.   
      9. }   
       

      畫法一:

       



       

       

            畫法二 :    

       

      Interface

      TaxCalculator

      +countTax():long

      +getSalary():int

      +setSalary()

       
       

      4. 關(guān)系

       

      常見(jiàn)的關(guān)系有:

      一般化關(guān)系(繼承)、

      實(shí)現(xiàn)關(guān)系(接口實(shí)現(xiàn))、

      聚合關(guān)系、

      合成關(guān)系、

      依賴關(guān)系。

      請(qǐng)注意不同關(guān)系在圖中連線表示的不同。

       

      4.1一般化關(guān)系(Generalization

       

      在有的書籍和資料中也叫做泛化關(guān)系。

       

             一般化關(guān)系表示類與類、接口與接口之間的繼承關(guān)系。關(guān)系中的箭頭由子類指向父類。在Java中,用extends關(guān)鍵字來(lái)直接表示這種關(guān)系。

       

      Java代碼  收藏代碼
      1. public abstract class Employee{  
      2.   
      3. }  
      4.   
      5. public class Programmer extends Employee{  
      6.   
      7. }   
       繼承:

       



       

       

      4.2實(shí)現(xiàn)(Realization

       

      實(shí)例關(guān)系指定兩個(gè)實(shí)體之間的一個(gè)合同。換言之,一個(gè)實(shí)體定義一個(gè)合同,而另一個(gè)實(shí)體保證履行該合同。關(guān)系中的箭頭由實(shí)現(xiàn)接口的類指向被實(shí)現(xiàn)的接口。在Java中,實(shí)現(xiàn)關(guān)系可直接用implements關(guān)鍵字來(lái)表示。

       

      Java代碼  收藏代碼
      1. public interface CollegePerson{  
      2.   
      3. }  
      4.   
      5. public class Professor implements CollegePerson{  
      6.   
      7. }  
       接口實(shí)現(xiàn):

       

      表示方法一:(在Rose2003 下實(shí)現(xiàn)如下,連接線沒(méi)有箭頭,因?yàn)榉较蝻@而易見(jiàn))



       

       

      表示方法二: 



       

       

       

       

      4.3關(guān)聯(lián)(Association

       

      表示類與類之間的連接。它使一個(gè)類的可見(jiàn)屬性和方法被另一個(gè)類使用。關(guān)聯(lián)可以是雙向或者單向的。雙向的關(guān)聯(lián)箭頭是可選的,單向的箭頭指向遍歷或者查詢的方向。在Java中,關(guān)聯(lián)使用實(shí)例變量來(lái)實(shí)現(xiàn)。在關(guān)聯(lián)關(guān)系中可以使用附加的基數(shù)來(lái)說(shuō)明類之間對(duì)應(yīng)的個(gè)數(shù)。

       

      基數(shù)

      含義

      0..1

      零個(gè)或者一個(gè)實(shí)例

      0..*或者*

      沒(méi)有限制,任意

      1

      有且只能一個(gè)實(shí)例

      1..*

      至少有一個(gè)實(shí)例

       

      常見(jiàn)的基數(shù)

       

      例:以權(quán)限中的用戶組、用戶角色為例,一個(gè)用戶角色可以屬于一個(gè)或者多個(gè)用戶組,一個(gè)用戶組則可以包含多個(gè)用戶角色。如果用戶組采用下面的方法來(lái)獲得用戶角色的權(quán)限

      Java代碼  收藏代碼
      1. public class UserGroup{  
      2.   
      3. private UserRole uRole ;  
      4.   
      5.           ......  
      6.   
      7. }  
      8.   
      9. public class UserRole{  
      10.   
      11. }   
       

       

      則表現(xiàn)在圖中為:(注意箭頭的畫法)



       

       


      注意:一個(gè)關(guān)聯(lián)關(guān)系往往是聚合關(guān)系或者是合成關(guān)系。

       

      4.4聚合(Aggregation

       

      聚合是關(guān)聯(lián)的一種形式,代表兩個(gè)類之間的整體/局部關(guān)系。聚合暗示著整體在概念上處于比局部更高的一個(gè)級(jí)別,而關(guān)聯(lián)暗示兩個(gè)類在概念上位于相同的級(jí)別。在Java中,聚合也是使用實(shí)例變量來(lái)實(shí)現(xiàn)的。
      關(guān)聯(lián)和聚合的區(qū)別純粹是概念上的,在Java語(yǔ)法上分辨不出來(lái)的。聚合還暗示著實(shí)例圖中不存在回路。換言之,只能是一種單向關(guān)系。

       

      例:汽車與輪胎的關(guān)系可以很好的說(shuō)問(wèn)題。

       

      Java代碼  收藏代碼
      1. public class Car{  
      2.   
      3.          private Tyres tyres;  
      4. }  
      5.   
      6. public class Tyres{  
      7.   
      8. }   
       聚合:

       



       

       

       

      4.5合成、組合(Composition

       

      合成是聚合的一種特殊形式,暗示局部整體內(nèi)部的生存期職責(zé)。合成關(guān)系是不能共享的。所以,雖然局部不一定要隨整體的銷毀而被銷毀,但整體要么負(fù)責(zé)保持局部的存活狀態(tài),要么負(fù)責(zé)將其銷毀。局部不可與其他整體共享。但是,整體可將所有權(quán)轉(zhuǎn)交給另一個(gè)對(duì)象,后者隨即將承擔(dān)生存期職責(zé)。

       

             例:人和他的腿就是一個(gè)好的例子。

       

      Java代碼  收藏代碼
      1. public class Man{  
      2.   
      3.          private Legs legs;  
      4.   
      5. }  
      6.   
      7. public class Legs{  
      8.   
      9. }   
       合成:

       



       

       

       

      4.6依賴(Dependency

       

      依賴也是類與類之間的連接,并且依賴總是單向的。實(shí)體之間一個(gè)使用關(guān) 系暗示一個(gè)實(shí)體的規(guī)范發(fā)生變化后,可能影響依賴于它的其他實(shí)例。更具體地說(shuō),它可轉(zhuǎn)換為對(duì)不在實(shí)例作用域內(nèi)的一個(gè)類或?qū)ο蟮娜魏晤愋偷囊谩F渲邪ㄒ粋€(gè) 局部變量,對(duì)通過(guò)方法調(diào)用而獲得的一個(gè)對(duì)象的引用(如下例所示),或者對(duì)一個(gè)類的靜態(tài)方法的引用(同時(shí)不存在那個(gè)類的一個(gè)實(shí)例)。也可利用依賴來(lái)表示包和包之間的關(guān)系。由于包中含有類,所以你可根據(jù)那些包中的各個(gè)類之間的關(guān)系,表示出包和包的關(guān)系。

       

      例:給一個(gè)雇員計(jì)算薪水的時(shí)候,要使用計(jì)算器的例子

       

      Java代碼  收藏代碼
      1. public class Employee{  
      2.   
      3.          public void calcSalary(Calculator cSalary)  
      4.          {  
      5.   
      6.          }  
      7. }   
       依賴:




       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多