<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    love fish大鵬一曰同風(fēng)起,扶搖直上九萬里

    常用鏈接

    統(tǒng)計

    積分與排名

    friends

    link

    最新評論

    UML 類圖介紹(轉(zhuǎn))

    一、 UML 簡介

    UML Unified Modeling Language )即統(tǒng)一建模語言,是 OMG Object Management Group )發(fā)表的圖標(biāo)式軟件設(shè)計語言。

    UML 的功能:

    可視化、說明、建造、建文檔

    UML 包括:

    ?????? ?????? 用例圖( Use case diagrams

    ?????? ?????? 類圖( Class diagrams

    ?????? ?????? 序列圖( Sequence diagrams

    ?????? ?????? 合作圖( Collaboration diagrams

    ?????? ?????? 狀態(tài)圖( Statechart diagrams

    ?????? ?????? 活動圖( Activity diagrams

    ?????? ?????? 構(gòu)件圖( Component diagrams

    ?????? ?????? 部署圖( Deployment diagrams

    (藍(lán)色為較重要并且常用的圖)

    類圖是最常用的 UML 圖,顯示出類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系;它用于描述系統(tǒng)的結(jié)構(gòu)化設(shè)計。

    類圖最基本的元素是類或者接口。

    二、類圖

    1. 類( Class

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

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

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

    屬性和方法之前可附加的可見性修飾符:

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

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

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

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

    1

    ?????? public class TaxCalculator

    {???

    ????? private long? taxRate ;

    ????? private long? salary? ;

    ?????

    ????? public TaxCalculator(long taxRate)

    ????? {

    ?????????? this.taxRate = taxRate ;

    ????? }

    ??????????

    ????? public long countTax()

    ????? {???

    ?????????? return taxRate*salary;?

    ????? }

    ?????

    ????? public int getSalary()

    ????? {

    ?????????? return salary;

    ????? }

    ?????

    ????? public void setSalary(int salary)

    ????? {

    ?????????? this.salary = salary;

    ????? }

    }

    TaxCalculator

    -taxRate:long

    +TaxCalculator(a:long)

    +countTax():long

    salary:long


    2.
    包( Package

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

    例:

    PATH o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" />/SPAN>

    ?


    3.
    接口( Interface

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

    例:

    public interface TaxCalculator

    {

    ????? public long countTax();

    ????? public int getSalary();

    ????? public void setSalary(int salary);

    }

    畫法一:
    ????????????

    ???? 畫法二 :

    ?????

    Interface

    TaxCalculator

    +countTax():long

    +getSalary():int

    +setSalary()

    4. 關(guān)系

    常見的關(guān)系有:一般化關(guān)系、實現(xiàn)關(guān)系、聚合關(guān)系、合成關(guān)系和依賴關(guān)系。請注意不同關(guān)系在圖中連線表示的不同。 ?????

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

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

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

    ????? 例:

    public abstract class Employee{

    }

    public class Programmer extends Employee{

    }

    4.2 實現(xiàn)( Realization

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

    例:

    public interface CollegePerson{

    }

    public class Professor implements CollegePerson{

    }

    表示方法一:(在 Rose2003 下實現(xiàn)如下,連接線沒有箭頭,因為方向顯而易見)


    ???表示方法二:

    ?

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

    關(guān)聯(lián)表示類與類之間的連接,是長期的關(guān)系。在關(guān)聯(lián)中,一個類保存對另一個類實例的引用,并在需要的時候調(diào)用這個實例的方法。它使一個類的可見屬性和方法被另一個類使用。關(guān)聯(lián)可以是雙向或者單向的。雙向的關(guān)聯(lián)箭頭是可選的,單向的箭頭指向遍歷或者查詢的方向。在 Java 中,關(guān)聯(lián)使用實例變量來實現(xiàn)。在關(guān)聯(lián)關(guān)系中可以使用附加的基數(shù)來說明類之間對應(yīng)的個數(shù)。

    基數(shù)

    含義

    0..1

    零個或者一個實例

    0..* 或者 *

    沒有限制,任意

    1

    有且只能一個實例

    1..*

    至少有一個實例

    常見的基數(shù)

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

    ????? public class UserGroup{

    private UserRole uRole ;

    ????? ????? ......

    }

    public class UserRole{

    }

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

    ?/SPAN> 注意:一個關(guān)聯(lián)關(guān)系往往是聚合關(guān)系或者是合成關(guān)系。

    PATH o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" />


    4.4 聚合( Aggregation

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

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

    public class Car{

    ????? private Tyres tyres;

    }

    public class Tyres{

    }

    ?

    4.5 合成( Composition

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

    ????? 例:人和他的腿就是一個好的例子。

    public class Man{

    ????? private Legs legs;

    }

    public class Legs{

    }

    4.6 依賴( Dependency

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

    例:給一個雇員計算薪水的時候 , 要使用計算器的例子

    public class Employee{

    ????? public void calcSalary(Calculator cSalary)

    ????? {

    ????? }

    }

    posted on 2006-05-25 09:38 liaojiyong 閱讀(1631) 評論(0)  編輯  收藏 所屬分類: UML


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 毛片在线播放免费观看| 亚洲日韩av无码中文| 亚洲成AV人片在线观看无码| 亚洲国产成人五月综合网 | 亚洲AV无码AV日韩AV网站| 波多野结衣亚洲一级| 国产成人亚洲精品| 国产亚洲福利在线视频| 亚洲七久久之综合七久久| 亚洲妇女无套内射精| 国产精品国产亚洲区艳妇糸列短篇| 亚洲youwu永久无码精品| 精品国产亚洲第一区二区三区| 国产成人综合亚洲| 一区二区三区免费视频网站| 国产99久久久国产精免费| 中文字幕永久免费| 三年片在线观看免费大全电影 | 国产激情久久久久影院老熟女免费| 污污污视频在线免费观看| 人成午夜免费大片在线观看| 韩日电影在线播放免费版| 91福利视频免费观看| 一本无码人妻在中文字幕免费 | 99精品视频免费在线观看| 99久久99这里只有免费费精品| 操美女视频免费网站| 国产一级一片免费播放| 精品国产香蕉伊思人在线在线亚洲一区二区 | 香港a毛片免费观看| 麻豆最新国产剧情AV原创免费| 免费高清在线爱做视频| 亚洲精品456播放| 久久亚洲精品国产精品黑人| 精品亚洲成A人无码成A在线观看| 亚洲色中文字幕在线播放| 永久免费无码网站在线观看个| 久久久高清日本道免费观看| 久久久久久久久免费看无码| 亚洲成年看片在线观看| 亚洲AV无码乱码国产麻豆穿越|