了解UML 類圖

文章簡(jiǎn)介
1、了解UML統(tǒng)一建模語(yǔ)言
2、重點(diǎn)關(guān)注類圖以及使用


一、UML簡(jiǎn)介

UML:描述、構(gòu)建和圖形化文檔系統(tǒng)的可視化描述語(yǔ)言。分為靜態(tài)和動(dòng)態(tài)兩種。
靜態(tài)圖:有助于設(shè)計(jì)包、類名、屬性等。
包圖:PackageDiagram
組件圖:ComponentDiagram
對(duì)象圖:ObjectDiagram
部署圖:DeploymentDiagram
復(fù)合結(jié)構(gòu)圖:CompositeStructureDiagram
用例圖:UseCaseDiagram
類圖:ClassDiagram
動(dòng)態(tài)圖:有助于設(shè)計(jì)邏輯、代碼行為、方法體。
交互概觀圖:InteractiveOverviewDiagram
順序圖:SequenceDiagram
通信圖:communicationDiagram
狀態(tài)圖:StateDiagram
活動(dòng)圖:ActivityDiagram
定時(shí)圖:TimingDiagram

二、類圖以及類圖說(shuō)明

類圖:類的屬性以及方法。以及類與類之間的關(guān)聯(lián)。
1、類圖說(shuō)明:

  • 類:使用三層矩形框表示。第一層顯示類的名稱,抽象類使用斜體表示。第二層表示類的屬性;第三層表示類的方法。
類圖
  • 接口:與類圖相比,頂端有<<Interface>>顯示。第一層是接口名稱。第二層是接口中的常量。第三層是接口中的方法。
接口

2、類與類(對(duì)象)之間的關(guān)系以及類圖描述。
類與類之間的關(guān)系主要有如下幾種:泛化(繼承)、依賴、關(guān)聯(lián)、組合。
綜述:UML中對(duì)象的關(guān)系都是在相應(yīng)的軟件環(huán)境或?qū)嶋H場(chǎng)景下定義的。區(qū)別聚合和組合的關(guān)系,在于它們之中整體和部分的關(guān)系強(qiáng)、弱,以及它們之間的依附關(guān)系。不同場(chǎng)景,不同定義。

2.1、泛化:一個(gè)元素是另一個(gè)元素的特殊化。也類似的成為繼承關(guān)系。在UML中,泛化關(guān)系用空心三角形+實(shí)線來(lái)表示,箭頭指向?yàn)楦割悺?br> 案例代碼:

// 泛化
        People person = new Man();
        System.out.println(person);

    /* 泛化演示類 2016-10-27 start */
    static class People {
        public String toString() {
            return "人類";
        }
    }
    static class Man extends People {
        public String toString() {
            return "男人";
        }
    }
    static class WoMan extends People {
        public String toString() {
            return "女人";
        }
    }
    /* 泛化演示類 2016-10-27 end */
泛化

2.2、依賴:某個(gè)元素在一定程度上依賴于另一個(gè)元素,同時(shí),一個(gè)類的改動(dòng)可能胡影響另一個(gè)類的運(yùn)行效果,則兩個(gè)類存在依賴關(guān)系。例如:工具類,依賴工具類中的方法進(jìn)而獲得展示的UI名稱。
案例代碼:

//依賴
        Coder coder = new Coder();
        System.out.println(coder.coding());

    /*依賴演示類 start*/
    static class Computer{
        public static String codingWithComputer(){
            return "coding with computer";
        }
    }
    
    static class Coder{
        public static String coding(){
            return Computer.codingWithComputer();
        }
    }
    /*依賴演示類 end*/
依賴

2.3、關(guān)聯(lián):當(dāng)一個(gè)類的實(shí)例與另一個(gè)類的一些特定實(shí)例存在固定的對(duì)應(yīng)關(guān)系,則稱兩個(gè)類存在關(guān)聯(lián)關(guān)系。
案例代碼:

//關(guān)聯(lián)
        Person age18 = new Person("372926198502184567");//人和身份證ID:1對(duì)1關(guān)聯(lián)
        System.out.println("身份證ID:"+age18.getPersonId());

    /*關(guān)聯(lián)演示類 start*/
    static class IDCard{
        public final String ID;
        public IDCard(String id){
            ID = id;
        }
    }
    static class Person{
        IDCard idcard;
        public Person(String 身份證ID){
            idcard = new IDCard(身份證ID);
        }
        public String getPersonId(){
            return idcard.ID;
        }
    }
    static class Class{
        List<Person> persons = new ArrayList<Person>();
    }
    /*關(guān)聯(lián)演示類 end*/
關(guān)聯(lián)

2.4、組合:組合關(guān)系是類之間一種整體與部分之間的關(guān)系,如一只青蛙有四條腿,青蛙類與青蛙腿類之間的關(guān)系就是組合關(guān)系。
案例代碼:

//組合
        青蛙 qingwa = new 青蛙();
        青蛙手 qingwaHand = new 青蛙手();

    /*組合演示類 start*/
    static class 青蛙{
        青蛙手 m青蛙手;
        青蛙腳 m青蛙腳;
    }
    static class 青蛙手{
        public void work() {
            System.out.println("“支撐平衡");
        }
    }
    static class 青蛙腳{
        public void work() {
            System.out.println("“支撐平衡");
        }
    }
    /*組合演示類 end*/
組合

2.5、聚合:
聚合關(guān)系是類之間的一種較弱的耦合關(guān)系,如一個(gè)字符串?dāng)?shù)組和一個(gè)字符串就是一種聚合關(guān)系。
部分的生命周期可以超越整體。如電腦和鼠標(biāo)。
案例代碼:

//聚合
        Company company = new Company();//公司與員工、部門之間是弱的包含關(guān)系
        Employee emplyee = new Employee();
        Department department = new Department();

    /*聚合演示類 start*/
    static class Company{
        Department mDepartment;
        Employee mEmployee;
        public void getDescription(){
            System.out.println("公司");
        }
    }
    static class Employee{
        public void getDescription(){
            System.out.println("雇員");
        }
    }
    static class Department{
        public void getDescription(){
            System.out.println("部門");
        }
    }
    /*聚合演示類 end*/
聚合

案例下載:http://download.csdn.net/detail/hailushijie/9667855

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【關(guān)鍵字】設(shè)計(jì)模式的原則 設(shè)計(jì)模式 uml類圖 一站式消化吸收學(xué)習(xí) 詞匯學(xué)習(xí)IoC (Inversion of C...
    scott_yu779閱讀 2,039評(píng)論 0 4
  • UML概述 UML簡(jiǎn)介 UML (Unified Modeling Language)為面向?qū)ο筌浖O(shè)計(jì)提供統(tǒng)一的...
    aron1992閱讀 599評(píng)論 0 0
  • 前言 關(guān)于UML類圖的這篇文章,我覺(jué)得把它放在設(shè)計(jì)模式專欄的篇首最為合適,因?yàn)樵趯W(xué)習(xí)設(shè)計(jì)模式的時(shí)候,經(jīng)常會(huì)遇到有關(guān)...
    程序員宜春閱讀 370評(píng)論 0 2
  • 忘記了uml類圖連線之間的關(guān)系,記錄一下。 1. 關(guān)聯(lián)關(guān)系 關(guān)聯(lián)(Association)關(guān)系是類與類之間最常用的...
    cutieagain閱讀 1,996評(píng)論 0 2
  • 關(guān)于空! 空不是沒(méi)有,空不是虛無(wú)!空是無(wú)邊無(wú)際無(wú)量!空是真如本來(lái)!空有,從來(lái)一體!不見(jiàn)空不識(shí)有! 朝露風(fēng)雷電!有用...
    縱情嬉戲天地間閱讀 243評(píng)論 0 0

友情鏈接更多精彩內(nèi)容