久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    【UML】基本介紹與類圖(依賴、泛化、實現、關聯、聚合、組合關系)

     路人甲Java 2020-01-10

    文章目錄

      • UML基本介紹
      • UML圖
      • UML類圖
      • 類圖—依賴關系(Dependence)
      • 類圖—泛化關系(generalization)
      • 類圖—實現關系(Implementation)
      • 類圖—關聯關系(Association)
      • 類圖—聚合關系(Aggregation)
      • 類圖—組合關系(Composition)
      • 小結
      • 方法
      • 參考資料

    簡單記錄

    UML類圖

    UML基本介紹

    1、UML—— Unified modeling language UML (統一建模語言),是一種用于軟件系統 分析和設計的語言工具,它用于幫助軟件開發人員進行思考和記錄思路的結果。

    2、UML本身是一套符號的規定,就像數學符號和化學符號一樣,這些符號用于描 述軟件模型中的各個元素和他們之間的 關系,比如類、接口、實現、泛化、依賴、組合、聚合等,如圖:

    在這里插入圖片描述
    3、使用UML來建模,常用的工具有 Rational Rose , 也可以使用一些插件來建模

    UML是一種語言,用來建模的 跟傳統的編程語言不一樣 它是用一些符號來表示的 用符號來描述一些設計思想 一種用于軟件系統分析和設計的語言工具 圖形描述 幫助我們進行思考和記錄的結果

    工具 Rational Rose 畫各種類

    插件 AmaterasUML

    統一建模語言,可以畫各種圖形,圖形可以幫助我們去軟件系統設計和分析理解。

    UML圖

    UML圖

    畫UML圖與寫文章差不多,都是把自己的思想描述給別人看,關鍵在于思路和條理。

    UML圖分類:

    • 用例圖(use case)
    • 靜態結構圖:類圖、對象圖、包圖、組件圖、部署圖
    • 動態行為圖:交互圖(時序圖與協作圖)、狀態圖、活動圖

    說明:
    類圖是描述類與類之間的關系的,是UML圖中最核心的

    熟悉地掌握了UML,就好像學會了寫字,在現實生活中,會寫字不見得會寫出好文章。僅僅會寫,學會了UML并不一定就分析設計出好的軟件系統,靈活的使用.

    UML類圖

    UML類圖用于描述系統中的類(對象)本身的組成和類(對象)之間的各種靜態關系。

    描述類和類之間的關系

    類之間的關系:依賴、泛化(繼承)、實現、關聯、聚合與組合
    類圖簡單舉例

    public class Person{ //代碼形式->類圖
    	private Integer id;
    	private String name;
        
    	public void setName(String name){
    		this.name=name;
    	}
    	public String getName(){
    		return name;
    	}
    }
    
    

    類圖怎么畫呢?

    代碼形式 --> 類圖

    類名 屬性 方法

    在這里插入圖片描述

    類和類之間到底是什么關系?怎么畫?這是一個問題.
    在這里插入圖片描述

    類圖—依賴關系(Dependence)

    ? 只要是在類中用到了對方,那么他們之間就存在依賴關系。如果沒有對方,連編繹都通過不了。

    public class PersonServiceBean {
    	private PersonDao personDao;//類 public void save(Person person){}
    	public IDCard getIDCard(Integer personid){
            
        }
        public void modify(){
    	Department department = new Department();
    	}
    }
    
    
    
    public class PersonDao{}  
    public class IDCard{}
    public class Person{} 
    public class Department{}
    

    在這里插入圖片描述

    在這里插入圖片描述

    小結
    類中用到了對方
    如果是類的成員屬性
    如果是方法的返回類型
    是方法接收的參數類型
    方法中使用到

    依賴關系

    A類用到了B類 ,A依賴于B, 沒有B,A編譯也通過不了

    類圖—泛化關系(generalization)

    泛化關系實際上就是繼承關系,他是依賴關系的特例。

    public abstract class DaoSupport{
    	public void save(Object entity){
            
    	}
    	public void delete(Object id){
    	
        }
    }
    
    
    public class PersonServiceBean extends Daosupport{
        
    }
    
    

    在這里插入圖片描述

    在這里插入圖片描述
    PersonServiceBean繼承了DaoSupport

    在這里插入圖片描述
    小結:

    • 泛化關系實際上就是繼承關系
    • 如果A類繼承了B類,我們就說A和B存在泛化關系

    A類繼承了B類,泛化關系就是繼承關系 , A類繼承了B類也相當于A類用到了B類, 泛化關系是依賴關系的特例。

    類圖—實現關系(Implementation)

    實現關系實際上就是A類實現B接口,他是依賴關系的特例.

    public interface PersonService {  public void delete(Interger id);
    }
    public class PersonServiceBean implements PersonService {
    public void delete(Interger id){}
    }
    
    

    在這里插入圖片描述
    一個類來實現這個接口

    在這里插入圖片描述

    PersonServiceBean實現了PersonService這個接口 實現關系

    人與人之間存在關系 但是否存在父子關系什么的 這是特例了

    實現關系是依賴關系的特例 ,依賴關系更強 。

    =>類圖

    在這里插入圖片描述

    小結????

    被一個類實現了 ,A類實現B接口 實現關系

    類圖—關聯關系(Association)

    關聯關系實際上就是類與類之間的聯系,他是依賴關系的特例
    關聯具有導航性:即雙向關系或單向關系
    關系具有多重性:如“1”(表示有且僅有一個),“0…”(表示0個或者多個), “0,1”(表示0個或者一個),“n…m”(表示n到 m個都可以),“m…*”(表示至少m 個)。

    單向一對一關系
    public class Person { private IDCard card;
    }

    public class IDCard{}

    一個人一個身份證號 一對一

    單向的 一對一

    雙向一對一關系

    public class Person {
    private IDCard card;
    }
    public class IDCard{
    private Person person

    }

    雙向一對一關系

    一個人一個身份證號 一對一 一個身份證號也對應一個人
    在這里插入圖片描述
    小結:

    關聯關系實際上就是類與類之間的聯系,是依賴關系的特例。

    導航性??雙向 單向

    多重性??一對一,一對多,多對多

    類圖—聚合關系(Aggregation)

    聚合關系(Aggregation)表示的是整體和部分的關系,整體與部分可以分開。聚
    合關系是關聯關系的特例,所以他具有關聯的導航性與多重性。
    如:一臺電腦由鍵盤(keyboard)、顯示器(monitor),鼠標等組成;組成電腦的各個 配件是可以從電腦上分離出來的,使用帶空心菱形的實線來表示:

    在這里插入圖片描述

    在這里插入圖片描述
    在這里插入圖片描述

    computer monitor mouse

    計算機包含鼠標、顯示器

    能不能分開

    如果關系是可以分開的,是聚合關系

    如果關系是不可以分開的,是組合關系

    鼠標是可以分離的,可以插上也可以不插上,電腦沒有鼠標還是一個電腦

    顯示器可以分開

    鼠標這個類 顯示器這個類 與電腦這個類 他們構成聚合關系

    對應類圖

    在這里插入圖片描述

    小結:

    聚合關系表示整體與部分關系,整體與部分可以分開,聚合關系是關聯關系的特例,導航性 多重性

    誰聚合誰的

    A聚合一個B 單聚合

    A里面可以聚合多個B 多重聚合

    如果我們人Mouse,Monitor和Computer是不可分離的,則升級為組合關系

    在這里插入圖片描述
    computer創建mouse、monitor也創建了,銷毀也都銷毀了

    在這里插入圖片描述

    類圖—組合關系(Composition)

    組合關系:也是整體與部分的關系,但是整體與部分不可以分開。
    再看一個案例:在程序中我們定義實體:Person與IDCard、Head, 那么 Head 和Person 就是 組合,IDCard 和 Person 就是聚合。

    人不能沒有頭 可以沒有手、腳,沒頭會死的。

    一個人沒有身份證,不會死的,可以去補辦身份證

    Head和Person就是組合,

    IDCard和Person就是聚合

    但是如果在程序中Person實體中定義了對IDCard進行級聯刪除,即刪除Person時連同IDCard一起刪除,那么IDCard 和 Person 就是組合了.

    public class Person{ private IDCard card;
    private Head head = new Head();
    }
    public class IDCard{} public class Head{}

    在這里插入圖片描述

    級聯刪除,一起刪了,組合。

    關聯關系 一個類 成員變量 成員屬性 用到另一個類 構成關聯關系

    聚合關系 整體和部分的關系 你是我的一個什么屬性 可以分開 聚合關系

    不能分開 組合關系

    小結

    依賴關系

    只要是在類中用到了對方,那么他們之間就存在依賴關系

    類中用到了對方

    如果是類的成員屬性

    如果是方法的返回類型

    是方法接收的參數類型

    方法中使用到

    在這里插入圖片描述

    虛線 箭頭

    用到了

    泛化關系

    泛化關系實際上就是繼承關系,他是依賴關系的特例。

    如果A類繼承了B類,我們就說A和B存在泛化關系

    在這里插入圖片描述

    空心三角形 實線

    實現關系

    實現關系實際上就是A類實現B接口,他是依賴關系的特例.

    在這里插入圖片描述

    空心的三角形 虛線

    關聯關系

    類與類之間的關系,他是依賴關系的特例.

    導航性 多重性

    在這里插入圖片描述

    單向一對一

    雙向一對一 你用到我 我用到你

    聚合關系

    聚合關系表示的是整體和部分的關系,整體與部分可以分開.

    聚合關系是關聯關系的特例,所以他具有關聯的導航性與多重性.

    在這里插入圖片描述

    Person Head Person IDCard

    在這里插入圖片描述

    組合 聚合 菱形實心空心

    創建 刪除 級聯的 組合關系

    類圖 關系 不同表示 畫

    依賴 泛化 實現 關聯 聚合 組合

    方法

    陸游和賣油翁

    陸游的忠告

    在這里插入圖片描述

    《冬夜讀書示子聿》
    (南宋)陸游
    古人學問無遺力,少壯工夫老始成。
    紙上得來終覺淺,絕知此事要躬行。

    漸若窺宏大 工夫在詩外

    紙上得來終覺淺,絕知此事要躬行

    賣油翁

    在這里插入圖片描述

    賣油翁
    【作者】歐陽修 【朝代】宋
    陳康肅公善射,當世無雙 ,公亦以此自矜。嘗射于家圃,有賣油翁釋擔而立,睨之久而不去。見其發矢十中八九,但微頷之。
    康肅問曰:”汝亦知射乎?吾射不亦精乎?”翁曰:”無他, 但手熟爾。”康肅忿然曰:”爾安敢輕吾射!”翁曰:”以我酌油知之。”乃取一葫蘆置于地,以錢覆其口,徐以杓酌油瀝之,自錢孔入,而錢不濕。因曰:”我亦無他,惟手熟爾。”康肅笑而遣之。
    此與莊生所謂解牛斫輪者何異?

    我亦無他,惟手熟爾。

    書到用時方恨少,事非經過不知難。

    知 行

    參考資料

    1、圖解Java設計模式-尚硅谷_韓順平

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 久久精品国产亚洲AV无码偷窥| 精品久久人人妻人人做精品 | 丰满爆乳一区二区三区| 中国女人熟毛茸茸A毛片| 亚洲欧美日韩成人一区| 日韩日韩日韩日韩日韩| 国产精品普通话国语对白露脸| 18禁网站免费无遮挡无码中文| 福利一区二区视频在线| 日韩AV无码精品一二三区| 一本色道久久东京热| 国产美女MM131爽爽爽| 久久精品国产亚洲av麻豆长发 | 亚洲天堂在线观看完整版| 亚洲AV成人中文无码专区| 在国产线视频A在线视频| 18精品久久久无码午夜福利 | 国产精品 自在自线| 色综合AV综合无码综合网站| 综合色一色综合久久网| 人人妻人人狠人人爽| 在线中文字幕亚洲日韩2020| 强奷漂亮人妻系列老师| 欧美亚洲国产一区二区三区| 亚洲最大成人在线播放| 欧美无人区码一码二码三码的区别| 和艳妇在厨房好爽在线观看| 欧美成人家庭影院| 中文人妻AV大区中文不卡| 国产色无码专区在线观看| 撕开奶罩揉吮奶头高潮AV| 97人妻中文字幕总站| 国产一二三五区不在卡| 一本久道久久综合狠狠爱| 蜜桃视频一区二区在线观看| 男女爽爽无遮挡午夜视频| 色综合久久久久综合体桃花网| 2019久久久高清日本道| 无码日韩av一区二区三区| 国精品无码一区二区三区在线蜜臀 | 青青草原国产AV福利网站|