日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

uml 图解

發(fā)布時間:2025/3/13 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uml 图解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在別人BLOG上看到一篇文章。覺得還是挺好理解的。于是轉(zhuǎn)過來
UML類圖解義
小菜:“對了,我時常在一些技術(shù)書中看到這些類圖表示,簡單的還看得懂,有些標(biāo)記我很容易混淆。要不你給我講講吧。”
大鳥:“這個其實(shí)多看多用就熟悉了。我給你舉一個例子,來看這樣一幅圖,其中就包括了UML類圖中的基本圖示法。”

UML類圖圖示樣例


大鳥:“首先你看那個‘動物’矩形框,它就代表一個類(Class)。類圖分三層,第一層顯示類的名稱,如果是抽象類,則就用斜體顯示。第二層是類的特性,通常就是字段和屬性。第三層是類的操作,通常是方法或行為。注意前面的符號,‘+’表示public,‘-’表示private,‘#’表示protected。”

大鳥:“然后注意左下角的‘飛翔’,它表示一個接口圖,與類圖的區(qū)別主要是頂端有<<interface>>顯示。第一行是接口名稱,第二行是接口方法。接口還有另一種表示方法,俗稱棒棒糖表示法,就是唐老鴨類實(shí)現(xiàn)了‘講人話’的接口。”

小菜:“為什么要是‘講人話’?”

大鳥:“鴨子本來也有語言,只不過只有唐老鴨是能講人話的鴨子。”

小菜:“有道理。”

  • interface IFly
  • {
  • void?Fly();
  • }
  • ?
  • interface?ILanguage
  • {
  • void?Speak();
  • }
  • 大鳥:“接下來就可講類與類,類與接口之間的關(guān)系了。你可首先注意動物、鳥、鴨、唐老鴨之間關(guān)系符號。”

    小菜:“明白了,它們都是繼承的關(guān)系,繼承關(guān)系用空心三角形+實(shí)線來表示。

    大鳥:“我舉的幾種鳥中,大雁是最能飛的,我讓它實(shí)現(xiàn)了飛翔接口。實(shí)現(xiàn)接口用空心三角形+虛線來表示。

    大鳥:“你看企鵝和氣候兩個類,企鵝是很特別的鳥,會游不會飛。更重要的是,它與氣候有很大的關(guān)聯(lián)。我們不去討論為什么北極沒有企鵝,為什么它們要每年長途跋涉。總之,企鵝需要‘知道’氣候的變化,需要‘了解’氣候規(guī)律。當(dāng)一個類‘知道’另一個類時,可以用關(guān)聯(lián)(association)。關(guān)聯(lián)關(guān)系用實(shí)線箭頭來表示。”(pig.hong補(bǔ)充:這里關(guān)聯(lián)我覺得用HeadFirst里面講的“有一個”更容易理解)

  • class Penguin : Bird
  • {
  • private?Climate climate;
  • }
  • 大鳥:“我們再來看大雁與雁群這兩個類,大雁是群居動物,每只大雁都是屬于一個雁群,一個雁群可以有多只大雁。所以它們之間就滿足聚合(Aggregation)關(guān)系。聚合表示一種弱的‘擁有’關(guān)系,[DPE](DPE表示此句摘自《設(shè)計模式》(第2版),詳細(xì)摘要說明見附錄二)。聚合關(guān)系用空心的菱形+實(shí)線箭頭來表示。

  • class WideGooseAggregate
  • {
  • private?WideGoose[] arrayWideGoose;
  • }
  • 大鳥:“合成(Composition,也有翻譯成‘組合’的)是一種強(qiáng)的‘擁有’關(guān)系,體現(xiàn)了嚴(yán)格的部分和整體的關(guān)系,部分和整體的生命周期一樣[DPE]。在這里鳥和其翅膀就是合成(組合)關(guān)系,因為它們是部分和整體的關(guān)系,并且翅膀和鳥的生命周期是相同的。合成關(guān)系用實(shí)心的菱形+實(shí)線箭頭來表示。另外,你會注意到合成關(guān)系的連線兩端還有一個數(shù)字‘1’和數(shù)字‘2’,這被稱為基數(shù)。表明這一端的類可以有幾個實(shí)例,很顯然,一個鳥應(yīng)該有兩只翅膀。如果一個類可能有無數(shù)個實(shí)例,則就用‘n’來表示。關(guān)聯(lián)關(guān)系、聚合關(guān)系也可以有基數(shù)的。”

  • class Bird
  • {
  • private?Wing wing;
  • public?Bird()
  • {
  • wing = new?Wing();
  • }
  • }
  • 大鳥:“動物幾大特征,比如有新陳代謝,能繁殖。而動物要有生命力,需要氧氣、水以及食物等。也就是說,動物依賴于氧氣和水。他們之間是依賴關(guān)系(Dependency),用虛線箭頭來表示。

  • abstract class Animal
  • {
  • public?Metabolism (Oxygen oxygen,Water water)
  • {
  • }
  • }
  • 小菜:“啊,看來UML類圖也不算難呀。回想那天我面試題寫的代碼,我終于明白我為什么寫得不成功了,原來一個小小的計算器也可以寫出這么精彩的代碼,謝謝大鳥
    大鳥:“吼吼,記住哦,編程是一門技術(shù),更加是一門藝術(shù),不能只滿足于寫完代碼運(yùn)行結(jié)果正確就完事,時常考慮如何讓代碼更加簡練,更加容易維護(hù),容易擴(kuò)展和復(fù)用,只有這樣才可以真正得到提高。寫出優(yōu)雅的代碼真的是一種很爽的事情。UML類圖也不是一學(xué)就會的,需要有一個慢慢熟練的過程。所謂學(xué)無止境,其實(shí)這才是理解面向?qū)ο蟮拈_始呢。”

    哈哈,很好理解,多多學(xué)習(xí)了!

    轉(zhuǎn)載﹕http://www.cnblogs.com/HeroBeast/archive/2008/01/23/1050615.html

    轉(zhuǎn)載于:https://www.cnblogs.com/wuzk2008/archive/2008/11/21/1338444.html

    總結(jié)

    以上是生活随笔為你收集整理的uml 图解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。