UML類圖還不懂?來看看這版鄉村愛情類圖,一把學會!

做者:小傅哥
博客:https://bugstack.cnhtml

沉澱、分享、成長,讓本身和他人都能有所收穫!😄

1、碼場心得

🤔有個詞叫內卷嚴重!java

最開始聽到這個詞是有個小夥伴在個人一篇HashMap源碼分析文章下的留言:「哥們,你這叫內卷!」。這篇文章深度解釋了擾動函數、負載因子以及相關數學方式的結果驗證,有興趣的能夠跳過去閱讀。《HashMap核心知識,擾動函數、負載因子、擴容鏈表拆分,深度學習》程序員

那什麼叫內卷呢,乍一看這詞仍是有點新的。其實內卷化來自單詞 involution,也能夠稱做「過密化」。這樣就好解釋了,好比;面試

  1. 100我的上衛生間就3個坑,無法公平分配,那就誰今天誰穿褲衩誰先上
  2. 100個700分以上的,就30%個名額能去清北。3萬多600分以上的考生裏,不少人可能連211都上不了。
  3. 道路擁堵,不能讓每一個人都開車,只能遙遙無期的搖號排隊。

這些均可以解釋爲過密化帶來的內卷嚴重問題,但好在這些都在不斷的優化完善。設計模式

🤒程序員也有內卷?!架構

其實大部分時候你們說的程序員內卷,指的是面試造火箭,求職愈來愈難。框架

其實從某種角度來講,我我的是不太承認說程序員有內卷的。就整個行業來看,程序員的工做就業狀況和薪資待遇都是不錯的。有人會以爲面試還得刷題、學源碼、看框架、懂架構等等,可這些難道不該該是你作成程序員職業發展道路上,必經的突破嗎?函數

可能每一個人都會在某個時期感受本身一直處於瓶頸期,作着重複的事情、碼着CRUD的邏輯、接觸不到核心的技術等等,都會猛的瞬間以爲本身快狒狒了。那這樣的你彷佛只能用內卷這個詞讓本身心裏平衡了,試問本身,你對本身投入過學習成長的時間嗎?你有計劃破局突破本身的瓶頸嗎?若是沒有那不叫內卷!工具

2、會議室

謝飛機,小記,假期回來上班的一週的🛩飛機,被組長安排了一次項目成長分享。源碼分析

小組長:飛機,你分享的項目中,核心模塊要給你們講清楚。這塊蠻有技術點的!

謝飛機:嗯嗯,我也在想怎麼能讓你們聽懂。

小組長:最好藉助一些工具,把代碼邏輯、功能流程,經過圖的方式表達出來。

謝飛機:流程圖我會畫了,可是這裏的核心功能類,我還不知道怎麼弄。

小組長:咳咳,用UML類圖哇,把核心類體現出來。

謝飛機:...,沒畫過,我內捲了嗎?

小組長:不要臉!等我畫點資料,教你!

3、鄉村愛情類圖學習

UML(Unified Modeling Language),是一種面向對象設計的建模工具,建模的核心是模型,模型是現實的簡化、真實的抽象。

在 UML 中,全部的描述包括:事務、關係、圖這三部分構件組成,以下圖爲全部構件的關係。

UML 構件關係圖,來自設計模式

接下來,咱們就着重講解UML中的類圖關係,在鄉村愛情人物裏的體現。

1. 類圖模型

UML 類圖(Class Diagrams),是使用頻率最高的 UML 圖之一,類圖能夠表示出類、接口和它們之間的協做關係。各個接口、類、屬性、方法,能夠用以下方式表達。

UML 類圖中,接口、類、屬性、方法,表達方式

2. 繼承關係

代碼

public class 謝廣坤 {
    private String 輩分;
    public void 做妖(){}
}

public class 謝永強 extends 謝廣坤 {
}

public class 謝飛機 extends 謝廣坤 {
}

類圖

UML類圖,繼承關係


  • 功能:繼承關係
  • 概念:繼承(Generaliztion)又叫泛化,用於表示子類繼承父類的全部功能。
  • 場景:謝廣坤的做妖技能,謝永強和謝飛機繼承。謝飛機繼承的更好,更能做。

3. 實現關係

代碼

public interface 舞術 {
    void 招式();
}

public class 劉能 implements 舞術 {
    private String 來將姓名;
    public void 招式() {
    }
}

public class 趙四 implements 舞術 {
    private String 來將姓名;
    public void 招式() {
    }
}

類圖

UML類圖,實現關係


  • 功能:實現關係
  • 概念:接口、抽象類聲明的方法,由類實現(Realiztion)其功能。
  • 場景:在趙四和劉能的一場比舞中,趙四花式走位,被劉能找準時機一踢撂倒。

4. 組合關係

代碼

public class 結婚證 {

    private 趙玉田 男方;
    private 劉英 女方;

    public void set男方(趙玉田 男方) {
        this.男方 = 男方;
    }

    public void set女方(劉英 女方) {
        this.女方 = 女方;
    }
}

public class 趙玉田 {

    private int 年齡;
    private String 性別;

}

public class 劉英 {

    private int 年齡;
    private int 性別;

}

類圖

UML類圖,組合關係


  • 功能:組合關係
  • 概念:組合(Combination)關係表示類中總體與部分的關係,總體與部分相依相存。
  • 場景:趙玉田和劉英的結婚證,缺一不可。

5. 聚合關係

代碼

public class 山莊 {

    private 宋曉峯 曉峯;
    private 李寶庫 寶庫;

    public void 藥膳房(李寶庫 寶庫) {
        this.寶庫 = 寶庫;
    }

    public void 保安部(宋曉峯 曉峯) {
        this.曉峯 = 曉峯;
    }

}

public class 李寶庫 {

    private String 職業;

}

public class 宋曉峯 {

    private String 職業;

}

類圖

UML類圖,聚合關係


  • 功能:聚合關係
  • 概念:聚合(Aggregate)關係,也是用於表示對象的總體和部分,但成員對象能夠與總體對象分離獨立存在。
  • 場景:在⛰山莊中藥膳方有李寶庫、保安部有宋曉峯。但李寶庫和宋曉峯都只是其中的一員,均可以離開山莊。

6. 關聯關係

代碼

public class 豆腐廠 {
    private 王小蒙 員工;
    public void 添加員工(王小蒙 小蒙){
        this.員工 = 小蒙;
    }
}

public class 王小蒙 {
    private 豆腐廠 企業;
    public void 添加企業(豆腐廠 豆腐廠){
        this.企業 = 豆腐廠;
    }

}

類圖

UML類圖,關聯關係


  • 功能:關聯關係
  • 概念:關聯(Association)關係,是類之間經常使用的一種關係,表示一類對象與另外一類對象的聯繫。組合、聚合也屬於這種關係,但關聯關係更弱。
  • 場景:豆腐廠裏有王小蒙,但豆腐廠裏又不僅是有王小蒙,還有王老七。即便小蒙不在,豆腐廠也能夠正常運行。而王小蒙還有本身的其餘企業,因此這屬於一種關聯關係。

7. 依賴關係

代碼

public class 招商引資 {
    public void 招商(王大拿 大拿){
    }
}

public class 王大拿 {
    private String 資源;
}

類圖

UML類圖,依賴關係


  • 功能:依賴關係
  • 概念:依賴(Dependency)關係當表示一個事務須要使用另一個事務時,可使用依賴關係。
  • 場景:招商引資須要王大拿,但並只是就只有這一個大拿。王大拿不來,可能還有李大拿、張大拿。

4、趙家班全景類圖

綜上,這6種關係裏,組合、聚合、關聯代碼結構相似,能夠從依賴的強弱進行理解。強弱關係依次是:繼承 > 實現 > 組合 > 聚合 > 關聯 > 依賴。

爲了更清楚的表達出 UML 類關係,咱們把這些畫到一整張圖中,以下;

UML類圖,趙家班全景類圖

5、總結

  • 有人說,若是咱們和外星人👽很是友善的通訊了。那麼兩個星球之間會進行一些交流,好比問,你好,地球人🌐人你多高呀?地球說1.75米。外星人暈了,米是什麼單位?這樣就只能選取兩個星球通用的標準來定義,好比:1米是光在真空中1/299792458秒內通過的距離。
  • 其實程序開發也是這樣的,爲了可讓你們減小對新知識內容的理解的溝通成本,須要定義一些溝通標準,好比UML類圖。因此咱們須要學習這些標準的工具化語言,來減小溝通成本,提高工做效率。
  • UML類圖也是最經常使用的圖稿,同時也很是易於掌握。爲了能夠把本身的知識面鋪設的更加完善,技術棧掌握的更加夯實,也爲了突破每個階段的瓶頸。那就須要不斷學習,不斷的積累,找機會破局。

6、系列推薦

相關文章
相關標籤/搜索