国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

UML 及 StarUml

NikoManiac / 2986人閱讀

摘要:類之間的關系關聯(lián)關系關聯(lián)關系是類與類之間最常用的一種關系,它是一種結構化關系,用于表示一個類對象與另一個類對象之間有聯(lián)系。自關聯(lián)在系統(tǒng)中可能會存在一些類的屬性對象類型為該類本身,這種特殊的關聯(lián)關系稱為自關聯(lián)。

UML

UML:統(tǒng)一建模語言(Unified Modeling Language)。在 UML 系統(tǒng)開發(fā)中有三個主要的模型:

功能模型:從用戶的角度展示系統(tǒng)的功能,包括用例圖。

對象模型:采用對象,屬性,操作,關聯(lián)等概念展示系統(tǒng)的結構和基礎,包括類圖、對象圖、包圖。

動態(tài)模型:展現(xiàn)系統(tǒng)的內部行為。包括時序圖,活動圖,狀態(tài)圖。

以下主要總結開發(fā)過程中常用的類圖和時序圖,及類之間的各種關系。

類圖

類圖使用類來描述系統(tǒng)的靜態(tài)結構,類圖包含類和它們之間的關系,它描述系統(tǒng)內所聲明的類,但它沒有描述系統(tǒng)運行時類的行為。

在UML類圖中,類一般由三部分組成:

類名:每個類都必須有一個名字,類名是一個字符串。

屬性(Attributes):屬性是指類的性質,即類的成員變量。類可以有任意多個屬性,也可以沒有屬性。

操作(Operations):操作是類的任意一個實例對象都可以使用的行為,操作是類的成員方法。

類之間的關系 關聯(lián)關系

關聯(lián)關系(Association)是類與類之間最常用的一種關系,它是一種結構化關系,用于表示一個類對象與另一個類對象之間有聯(lián)系。

在 UML 類圖中,用實線連接有關聯(lián)的對象所對應的類。在實現(xiàn)關聯(lián)關系時,通常將一個類的對象作為另一個類的屬性。

單向關聯(lián)

類的關聯(lián)關系可以是單向的,單向關聯(lián)用帶箭頭的實線表示。

public class Customer
{
    private Address address;
    ……
}

public class Address
{
    ……
}
雙向關聯(lián)

默認情況下,關聯(lián)是雙向的。

public class Customer
{
    private Product[] products;
    ……
}
public class Product
{
    private Customer customer;
    ……
}
自關聯(lián)

在系統(tǒng)中可能會存在一些類的屬性對象類型為該類本身,這種特殊的關聯(lián)關系稱為自關聯(lián)。

重數(shù)性關聯(lián)

重數(shù)性關聯(lián)關系又稱為多重性關聯(lián)關系(Multiplicity),表示一個類的對象與另一個類的對象連接的個數(shù)。在 UML 中多重性關系可以直接在關聯(lián)直線上增加一個數(shù)字表示與之對應的另一個類的對象的個數(shù)。

表示方式 多重性說明
1..1 表示另一個類的一個對象只與一個該類對象有關系
0..* 表示另一個類的一個對象與零個或多個該類對象有關系
1..* 表示另一個類的一個對象與一個或多個該類對象有關系
0..1 表示另一個類的一個對象沒有或只與一個該類對象有關系
m..n 表示另一個類的一個對象與最少m、最多n個該類對象有關系 (m<=n)
聚合關系

聚合關系(Aggregation)表示一個整體與部分的關系。通常在定義一個整體類后,再去找出這個整體類的一些成員類,該整體類和成員類之間就形成了聚合關系。

在聚合關系中,成員類是整體類的一部分,即成員對象是整體對象的一部分,但是成員對象可以脫離整體對象獨立存在。在 UML 中,聚合關系用帶空心菱形的直線表示。

public class Car
{
    private Engine engine;
    public Car(Engine engine)
   {
        this.engine = engine;
    }
    
    public void setEngine(Engine engine)
    {
        this.engine = engine;
    }
    ……
}
public class Engine
{
    ……
}
組合關系

組合關系(Composition)也表示類之間整體和部分的關系,但是組合關系中部分和整體具有統(tǒng)一的生存期。一旦整體對象不存在,部分對象也將不存在,部分對象與整體對象之間具有同生共死的關系。

在組合關系中,成員類是整體類的一部分,而且整體類可以控制成員類的生命周期,即成員類的存在依賴于整體類。在UML中,組合關系用帶實心菱形的直線表示。

public class Head
{
    private Mouth mouth;
    public Head()
    {
    mouth = new Mouth();
    }
    ……
}

public class Mouth
{
    ……
}
依賴關系

依賴關系(Dependency)是一種使用關系,特定事物的改變有可能會影響到使用該事物的其他事物,在需要表示一個事物使用另一個事物時使用依賴關系。大多數(shù)情況下,依賴關系體現(xiàn)在某個類的方法使用另一個類的對象作為參數(shù)。

在UML中,依賴關系用帶箭頭的虛線表示,由依賴的一方指向被依賴的一方。

public class Driver
{
    public void drive(Car car)
    {
        car.move();
    }
    ……
}
public class Car
{
    public void move()
    {
        ......
    }
    ……
}
泛化關系

泛化關系(Generalization)也就是繼承關系,也稱為“is-a-kind-of”關系,泛化關系用于描述父類與子類之間的關系,父類又稱作基類或超類,子類又稱作派生類。在 UML 中,泛化關系用帶空心三角形的直線來表示。

實現(xiàn)關系

實現(xiàn)關系(Realization)是類實現(xiàn)了接口,類中的操作實現(xiàn)了接口中所聲明的操作。在UML中,類與接口之間的實現(xiàn)關系用帶空心三角形的虛線來表示。

時序圖

時序圖用于表示對象之間的交互,重點表示對象之間發(fā)送消息的時間順序。它以圖形化的方式描述了在一個用例或操作的執(zhí)行過程中對象如何通過消息相互交互,說明了消息如何在對象之間被發(fā)送和接收以及發(fā)送的順序。時序圖允許直觀地表示出對象的生存期,在生存期內,對象可以對輸入消息做出響應,還可以發(fā)送信息。

一個復雜的時序圖可以劃分為幾個小塊,每一個小塊稱為一個交互片段(Interaction Fragment)。每個交互片段由一個大方框包圍,在方框左上角的間隔區(qū)內標注該交互片段的操作類型,該操作類型用操作符表示,常用的操作符包括:

alt:多條路徑,條件為真時執(zhí)行。

opt:任選,僅當條件為真時執(zhí)行。

par:并行,每一片段都并發(fā)執(zhí)行。

loop:循環(huán),片段可多次執(zhí)行。

StarUML

開發(fā)過程中需要繪制類圖和時序圖,常用的軟件有:StarUML,PowerDesigner 等,在線的有:ProcessOn。這里我最常用的是 StarUML,因為它顏值高~~~

軟件破解

StarUML 是一款收費軟件,但它的破解很有意思。在安裝 StarUML 的 www/license/node 目錄下,找到 LicenseManagerDomain.js,在校驗函數(shù)中直接返回用戶信息即可。

類之間的關系

在繪制類之間的關系時,對應 UML 的工具如下圖所示:

其中實現(xiàn)的關系,要達到帶空心三角形的虛線表示,則不要使用這個 Interface Realization,而應該在 Composite Structure 目錄下找到 Realization 的工具。

復雜時序圖

在繪制時序圖的時候,會遇上選擇,循環(huán)等復雜的表示,StarUML 可以利用組合片段來完成。

添加組合片段到時序圖上:

如果有多條分支,則在右邊菜單中,拷貝 Operand:

更改名字和操作類型,默認是seq,還有 alt,opt,loop 等。

填寫不同分支的“guard” 信息(如雙擊左邊對應分支的空白處,輸入的[yes]和[no]),再處理對應的消息:

本文發(fā)表于個人博客:http://lavnfan.github.io/,歡迎指教。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67778.html

相關文章

  • ?? 程序員【代碼管理】工具介紹??,熱門語言更新這么快,你繞不過這一關的!

    上次講了2個游戲源碼 前端實戰(zhàn)之js推箱子游戲(有界面、附源碼、贊關藏) Python實戰(zhàn):五子棋小游戲,切身感受一下前端和桌面應用的區(qū)別,選擇自己喜歡的 本來今天準備寫一篇面向對象文章,但是想一想,講面向對象之前還是先給大家介紹幾款實用的工具,更加快速的理解,掌握知識點。 1.UML 統(tǒng)一建模語言(Unified Modeling Language,UML)是一種為面向對象系統(tǒng)的產品進行說明、可...

    array_huang 評論0 收藏0
  • 從用 AngularJS 開發(fā) PC 客戶端說起

    摘要:你們說能不能就用的開發(fā)模式來實現(xiàn)客戶端啊這樣版版版就都有了。有道云筆記可能就是最貼近我們想法的產品,有客戶端,有版。這個項目由發(fā)起和維護。 最近一個多月一直在用 AngularJS 做公司的一個項目(還沒有做完),我之前主要是用 PHP 開發(fā)服務端的,AngularJS 也是現(xiàn)學現(xiàn)賣,整個過程還是比較有意義的,覺得很有必要寫篇文章記錄一下。 緣起 事情是這樣的……我們團隊的產品是一款 ...

    waltr 評論0 收藏0
  • 從用 AngularJS 開發(fā) PC 客戶端說起

    摘要:你們說能不能就用的開發(fā)模式來實現(xiàn)客戶端啊這樣版版版就都有了。有道云筆記可能就是最貼近我們想法的產品,有客戶端,有版。這個項目由發(fā)起和維護。 最近一個多月一直在用 AngularJS 做公司的一個項目(還沒有做完),我之前主要是用 PHP 開發(fā)服務端的,AngularJS 也是現(xiàn)學現(xiàn)賣,整個過程還是比較有意義的,覺得很有必要寫篇文章記錄一下。 緣起 事情是這樣的……我們團隊的產品是一款 ...

    Reducto 評論0 收藏0
  • Chap5:行為型設計模式————策略模式

    摘要:類共享,因此需要實現(xiàn)中的所有抽象方法,如果有的具體策略類比較簡單,但還是必須要去實現(xiàn)它的抽象方法,因此會增加不必要的開銷參考設計模式十八策略模式對象行為型深入面向對象模式與實踐第版 因為最近在學策略模式,所以想先跳過創(chuàng)建型設計模式中得適配器模式 定義 策略模式,顧名思義,就是提供多個策略的模式,用戶在不同的情況下可以選擇不同的策略,比如商場的打折策略(不同節(jié)假日不同的折扣方式),旅游出...

    sshe 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<