常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          (轉(zhuǎn))UML中類(lèi)圖實(shí)例

          接口:空心圓+直線(xiàn)(唐老鴨類(lèi)實(shí)現(xiàn)了‘講人話(huà)’);
          依賴(lài):虛線(xiàn)+箭頭(動(dòng)物和空氣的關(guān)系);
          關(guān)聯(lián):實(shí)線(xiàn)+箭頭(企鵝需要知道氣候才遷移);
          聚合:空心四邊形+實(shí)線(xiàn)+箭頭(雁群和大雁的關(guān)系);
          合成/組合:實(shí)心四邊形+實(shí)線(xiàn)+箭頭(鳥(niǎo)和翅膀的關(guān)系);
          泛化/
          繼承:空心三角形+實(shí)線(xiàn)(動(dòng)物和鳥(niǎo)的繼承關(guān)系);
          實(shí)現(xiàn):空心三角形+虛線(xiàn)(實(shí)現(xiàn)大雁飛翔的接口);
          UML類(lèi)圖  
          解釋
          UML類(lèi)圖:
          1.       首先看“動(dòng)物”矩形框,它代表一個(gè)類(lèi)。該類(lèi)圖分為三層,第一層顯示類(lèi)的名稱(chēng),如果是抽象類(lèi)就要用斜體顯示。第二層是類(lèi)的特性,通常就是字段和屬性。第三層是類(lèi)的操作,通常是方法和行為。
             注意前面的符號(hào),‘+’表示public, ‘ 表示private, ‘#’表示protected.   
                                                     
          2.       飛翔矩形框表示一個(gè)接口圖,它與類(lèi)圖的區(qū)別主要是頂端有《interface》顯示,第一行是接口名稱(chēng),第二行是接口方法。接口還有另一種表示方法,俗稱(chēng)棒棒糖表示法,就是唐老鴨類(lèi)實(shí)現(xiàn)了“講人話(huà)”的接口。
                        
          interface IFly                              interface Ilanguage                              
          {                                              {
             
          void Fly();                                    void Speak();
          }                                             }

          3.       動(dòng)物,鳥(niǎo),鴨,唐老鴨他們之間都是繼承的關(guān)系,繼承關(guān)系用空心三角形+實(shí)現(xiàn)來(lái)表示   
                           

          4.“大雁”實(shí)現(xiàn)了“飛翔”接口。實(shí)現(xiàn)接口用空心三角形+虛線(xiàn)來(lái)表示。(注:下面的圖中應(yīng)為空心三角形

          class Bird:Animal                      class WideGoose:IFly
          {                                        {
             
          //繼承動(dòng)物類(lèi)                                 //實(shí)現(xiàn)飛翔接口
          }                                        }

          5.       企鵝與氣候有很大的關(guān)系,企鵝需要“知道”氣候的變化,需要“了解”氣候規(guī)律。當(dāng)一個(gè)類(lèi)“知道”另一個(gè)類(lèi)時(shí),可以用關(guān)聯(lián)(association)關(guān)系。關(guān)聯(lián)關(guān)系用實(shí)線(xiàn)箭頭來(lái)表示  
               
          class Penguin :Bird
          {
             
          private Climate climate;//在企鵝Penguin中,引用到氣候Climate對(duì)象
          }

          6.       “大雁”和“雁群”這兩個(gè)類(lèi)。大雁是群居動(dòng)物,每只大雁都屬于一個(gè)雁群,一個(gè)雁群可以有多只大雁。所以它們之間就滿(mǎn)足聚合(Aggregation)關(guān)系。聚合表示一種弱的“擁有”關(guān)系,體現(xiàn)的是A對(duì)象可以包含B對(duì)象,但B對(duì)象不是A對(duì)象的一部分。聚合關(guān)系用空心的菱形+ 實(shí)線(xiàn)箭頭表示
              

          class WideGooseAggregate
          {
             
          private WideGoose[] arrayWideGoose;
             
          //在雁群WideGooseAggregate類(lèi)中,有大雁數(shù)組對(duì)象arrayWideGoose
          }

          7.       “鳥(niǎo)”和“翅膀”這兩個(gè)類(lèi)。鳥(niǎo)和翅膀似整體和部分的關(guān)系,并且翅膀和鳥(niǎo)的生命周期是相同的,在這里鳥(niǎo)和其翅膀就是合成關(guān)系。合成(composition)是一種強(qiáng)的“擁有”關(guān)系,體現(xiàn)了嚴(yán)格的部分和整體的關(guān)系,部分和整體的生命周期一樣合成關(guān)系用實(shí)心的的菱形+實(shí)線(xiàn)箭頭來(lái)表示。另外,合成關(guān)系的連線(xiàn)兩端還有一個(gè)數(shù)字“1”和數(shù)字“2”,,這被稱(chēng)為基數(shù)。表明這一端的類(lèi)可以有幾個(gè)實(shí)例,很顯然,一個(gè)鳥(niǎo)應(yīng)該有兩支翅膀。如果一個(gè)類(lèi)可能有無(wú)數(shù)個(gè)實(shí)例,則就用“n”來(lái)表示。關(guān)聯(lián)關(guān)系,聚合關(guān)系也可以有基數(shù)的。
          class Bird 
          {
            
          private Wing wing;
            
          public Bird()
             {
                wing
          =new Wing();
              
          //在鳥(niǎo)Bird類(lèi)中,初始化時(shí),實(shí)例化翅膀Wing,它們之間同時(shí)生成
             }
          }

          8.       “動(dòng)物”、“氧氣”與“水”之間。動(dòng)物有幾大特征,比如有新陳代謝,能繁殖。而動(dòng)物要有生命,需要氧氣,水以及食物等。也就是說(shuō)動(dòng)物依賴(lài)于氧氣和水。它們之間是依賴(lài)關(guān)系(Dependency),用虛線(xiàn)箭頭來(lái)表示

          abstract class Animal
          {
             
          public bolism(Oxygen oxygen,Water water)
              {
              } 
          }

          posted on 2011-02-12 13:02 九寶 閱讀(363) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java Study(JavaThinking4)

          主站蜘蛛池模板: 奉新县| 乌兰察布市| 城固县| 诸城市| 栾川县| 新民市| 宜都市| 福建省| 陵水| 全南县| 桃江县| 房产| 珲春市| 樟树市| 莱西市| 凤城市| 五原县| 甘德县| 吴川市| 黔西县| 玛纳斯县| 平武县| 永吉县| 马边| 卢氏县| 辛集市| 天台县| 教育| 安吉县| 刚察县| 和龙市| 化隆| 吴江市| 武宣县| 武胜县| 普定县| 新源县| 建水县| 洛隆县| 陇南市| 泸水县|