精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

拯救爛慫代碼?我是這么做的

開發 系統
為了讓小貓更好地優化梳理爛慫代碼,老貓花了好幾個晚上整理出來了繪制的方法。接下來,我們一起來看!

一、故事

這幾天的小貓心情還不錯,修完了"冪等事件的bug",填完了"緩存擊穿的坑",前兩天組長交代給他的“整理一份系統現狀報告”任務也算是有了思路,陰霾終于散去。好像一切都朝著好的方向發展了。是的,也該過去了,畢竟這些事情折磨小貓都快個把月了。

這天,小貓提著兩杯咖啡找到了產品經理,本來么,禮多人不怪,這不效果就來了么。

“......整個業務背景呢,其實也就是這樣了,然后后面有啥其他問題,也歡迎隨時問,知無不答”。產品老汪和小貓足足聊了一半個小時,唾沫星子橫飛,似乎還有點意猶未盡。

“嗯嗯,謝謝了,汪哥,耽誤你時間了。”

“沒事兒,不用客氣,不過提醒你一下,當前系統經過太多開發的手了,系統代碼得好好看看,聽說初版本的時候都是外包搞的。你懂得......”

“嗯嗯,好,太感謝了” 小貓連連點頭,老汪的話倒是提醒了他。

內心開始嘀咕,“哎。看來搞定各種模型關系,業務背景也還是不行啊,面對現實吧,爛慫代碼還是得梳理一下的,當前系統的接口定義、以及類的封裝貌似都挺亂的......”

二、開啟“類圖”之旅

說到對系統代碼中的模型梳理,其實最好的方式還是使用UML類圖。上個章節中老貓沒有展開和大家分享UML類圖,一個是由于篇幅的原因,第二個是老貓覺得類圖對于咱們后續閱讀框架源碼以及底層設計模式有著相當大的幫助,所以很有必要將其作為單獨一篇來和大家分享。如下概要:

1.類圖的簡介

類圖是什么呢?比較專業一點的說法:在軟件工程中,類圖是一種靜態的結構圖,描述了系統的類的集合,類的屬性和類之間的關系,可以簡化了人們對系統的理解;類圖是系統分析和設計階段的重要產物,是系統編碼和測試的重要模型。

其實不僅僅是軟件工程中,其他很多時候需要理清復雜關系的時候,咱們也可以用到這種表示方式。接下來,跟著老貓揭開類圖的神秘面紗......

2.類圖的基本屬性

其實類圖還是相當簡單的,類圖只要概括起來就兩個比較重要的點,一個是類,第二個是類和類之間的關系,咱們弄清楚這兩個,其實類圖也就掌握了。啥是類?對于OO程序員來說,這個類不就是咱們日常定義的class么,沒錯,其實就是這概念。其中包含類名、類的屬性、類的方法。

王者榮耀打過吧?老貓用自己比較喜歡的一個英雄“鐘馗”為案例和大家解析一下。如下圖:

classDemo

上圖中咱們可以看到:

  • 類名:最上面的矩形框中即為類名:鐘馗(Zhongkui)
  • 類的屬性:類名下的第一個矩形圖中表示類的屬性,如上鐘馗案例中,其名稱、血條等等信息即為其屬性。
  • 類的方法:在類屬性的下面就是類的方法,其中在鐘馗這個英雄類的方法中包含勾人--hook(),錘人--hammer()等等

上圖中我們可以看到無論是類的前面還是方法的前面其實都有不同的符號,其實這類符號就是作用域的概念。在類圖中,作用域主要有以下幾個:

  • “+”:表示public,對所有的類都可見。
  • “-”:表示private,僅僅只對當前類可見。
  • “#”:表示protected,受保護的屬性或者方法,其子孫類可見。
  • “~”:表示package,表示包內可見
  • “=”:表示默認值,上述案例中可能沒有畫出來。大家概念知道一下即可。
  • “_”: 下劃線,表示當前的這個類的方法或者屬性是靜態的。
  • 斜體:老貓這里沒有畫出來,這里其實表示的是抽象,當然有的時候也會用兩個尖括號包裹來表示抽象,<<我是抽象類or接口>>。

方法和屬性冒號后面所表示的含義也不一樣,方法后面冒號后面的描述例如hammer():boolean,表示的就是返回值為boolean類型,是否錘到人。而屬性的冒號后面則表示的是當前該屬性的類型。

3.類之間的關系

我們再來看一個每個類和類之間的關系。直接看表示方式,如下圖:

classRel

上述圖中,咱們可能需要記住的是各種線條的表示方式。接下來,咱們一一來看。

(1) 泛化(繼承)關系

我們舉一個鴨子繼承鳥類這樣一個例子。我們表示出來的話,如下:

jc

表示方法:空心三角+實線,箭頭指向父類

上圖中我們清晰地看見子類鴨子繼承了父類所有的屬性,當然除此之外,子類還豐富了父類的方法,例如鴨子繼承下蛋的同時擴充了游泳。

小代碼:

public class Bird {
  public String feather;
  public String wing;
  public void layEggs() {

  }
}

public class Duck extends Bird {
  public String feather;
  public String wing;
  public void layEggs() {

  }
  public boolean swim() {
      return true;
  }
}

(2) 實現

抽象了飛翔這么一個接口,然后讓各種不一樣的鳥類進行實現,如下圖:

classImpl

表示方法:空心三角+虛線,箭頭指向待實現的接口

表示實現接口中的所有的方法。

小代碼:

  public interface Fly {
    public void doFly();
  }

  public class WildGoose implements Fly {
    public void doFly() {

    }
  }

(3) 依賴

舉個例子,動物都依賴于空氣,于是咱們就有了下圖:

classyl

表示方法:尖括號+虛線,尖括號指向被依賴的類。

依賴關系表示一個類使用(依賴)另一個類的服務或信息。一般來說,依賴總是單向的,不應該存在雙向依賴。就拿上面的例子來說,動物依賴于空氣,咱們并不能說,空氣依賴于動物,可見依賴是單向的。

小代碼:

public class Animal {
   public void breath(Oxygen oxygen,Water water) {
      oxygen.supply();
      water.supply();
   }
}

public class Oxygen {
  public void supply(){

  }
}

(4) 關聯

說到關聯,種類比較多,但是理解起來還是比較簡單,即一類對象和另外一類對象之間存在某種關系。這種關聯關系分為單項關聯、雙向關聯、自關聯、多重關聯。在面向對象語言中,如果表示存在關聯關系,那么通常會將一個類的對象作為另外一個類的成員變量。

①單向關聯

例如用戶在商城中購買東西之前都需要去設置地址,那么用戶和地址之間就是單向關聯關系。

單項關聯

表示方法:尖括號+實線,尖括號指向用戶的成員變量,即地址。

小代碼:

    public class User {
      private Address address;
      ...
    }
    public class Address{
      ...
    }

②雙向關聯

例如用戶購買商品,商品同時也會被不同的人購買,那么這種行為就是雙向關聯。

雙向關聯

表示方法:實線連接兩個類即可。

小代碼:

   public class User {
     private List<Product> products;
     ...
   }
   public class Product{
     private User user;
   }

③自關聯

關于自關聯,其實我們日常開發中也遇到過,尤其是一些遞歸類的時候,例如樹形結構,大樹下面套小樹。

樹形Tree

小代碼:

  public class Tree {
    private Tree subTree;
  }

④多重關聯

多重關聯關系表示兩個關聯對象在數量上的對應關系。在UML中,對象之間的多重性可以直接在關聯直線上用一個數字或一個數字范圍表示。比如一條河上在某個時間有好幾只鴨子在上面浪,當然也可以沒有。但是在那個時刻對于那只鴨子而言,它只能在一條河里面浪。例子以及數量表示說明如下:

多重

小代碼:

  private class River {
    private Duck[] ducks;
    ....
  }
  public class Duck {

  }

(5) 聚合

主要描述聚合關系,描述的是整體與部分的關系。對于聚合來說,成員對象是整體對象的一部分,當然成員對象也可以脫離整體獨立存在。這么說的話有點抽象了,打個比方,老貓有最近想要組裝一臺臺式電腦,于是我買了顯卡以及主板等等元器件。對于臺式機來說顯卡以及元器件是其一部分,但是顯卡以及主板又可以單獨作為商品進行售賣。于是我們就有了下面這樣一幅示意圖。

聚合

表示方法:空心菱形表示連接待聚合的那個類對象

小代碼:

  public class Computer {
    private KeyBoard keyboard;
    //構造方法注入
    public Computer(KeyBoard keyboard){
       this.keyBoard = keyboard;
    }
  }
  public class KeyBoard {

  }

(6) 組合

組合關系和聚合有點類似,也是描述整體和部分的關系,區別是聚合的話成員對象可以脫離整體單獨存在,但是組合是"同生共死"的組合對象關系。例如公司和部門之間的關系。即為組合關系。如果公司都涼涼了,那么還有部門么?簡單一幅示意圖如下。

組合

表示方法:實心菱形表示連接待組合的那個類對象

小代碼:

  public class Company {
    private  Department department;
    public Company(Department department){
      this.department = department;
    }
  }
  public class Department {

  }

4.綜合案例

若是看到此處,相信大家對類圖的各種表示方式已經了然于胸了吧。那么咱們接下來就來看看老貓繪制出來的類圖關系吧。

案例

大家可以試試看看對照著老貓上面的梳理來讀懂這樣一個真實的模型類圖吧。

5.如何繪制類圖

寫了這么多,相信大家對如何繪制類圖用什么工具還是比較好奇的。

其實在idea中很多時候我們可以直接查看類圖。只要在類名上面右鍵單擊,選擇 Diagrams -> Show Diagram即可展示如下圖:

demo

在上一篇文章中也有很多小伙伴問老貓流程圖是用什么畫的。其實都一樣的,老貓一般繪制這種圖就用兩種工具軟件,一種是drawio,另外一種是wps中的流程圖繪制。當然其實還有其他繪制工具,例如process on等等,大家可以自己去試試。

三、寫在最后

為了讓小貓更好地優化梳理爛慫代碼,老貓花了好幾個晚上整理出來了繪制的方法。其實無論是多么復雜的類,只要我們把握清楚其中的類圖關系,然后再結合上一篇文章中的業務模型對照起來一起看,就很清晰了。當然,前提是需要有足夠的耐心。

當然老貓費勁心血梳理uml的類圖繪制流程其實還有一個原因,就是接下來咱們要開啟“有趣的設計模式之旅”了。小伙伴們,持續關注老貓吧,相信后文更精彩。

責任編輯:趙寧寧 來源: 程序員老貓
相關推薦

2015-08-05 10:50:01

Facebook緩存網頁

2016-02-25 10:46:33

數據排序數據處理谷歌

2022-01-14 14:19:38

ReactTS前端

2020-03-12 07:42:49

代碼程序員

2019-10-08 12:32:07

運維架構技術

2013-11-27 12:40:21

鮑爾默微軟

2023-07-27 13:44:19

業務用戶畫像

2023-06-27 11:57:24

用戶分析挖掘法ABtest

2018-06-10 20:53:53

2014-07-10 09:15:38

負載均衡安全網關

2024-01-18 08:15:05

AIGC知識圖譜大模型

2024-10-15 11:54:38

2022-07-11 11:28:45

數據分析業務消費

2024-11-27 11:44:08

2013-03-29 09:54:05

創業創業者

2025-11-20 08:24:27

2017-08-28 16:33:46

UI界面模式用戶

2018-10-22 09:17:22

數據中心阿里微軟

2020-03-23 10:42:56

團隊協作阿里

2024-09-20 19:28:47

點贊
收藏

51CTO技術棧公眾號

久久中文字幕av一区二区不卡| 久久精品国产亚洲AV熟女| 国产尤物视频在线| 久久激情五月婷婷| 日韩精品一区二区三区中文不卡| 四虎4hu永久免费入口| 手机在线精品视频| 精品一区中文字幕| 97视频免费在线观看| 成人精品一二三区| 亚洲天天综合网| 中文精品一区二区| 欧美日韩一二三四五区| 亚洲成人蜜桃| 五月婷婷六月色| 日本伊人精品一区二区三区观看方式| 不卡av日日日| 日本人亚洲人jjzzjjz| 香港久久久电影| 欧美日韩中文国产| 69堂免费视频| 国产精品69页| 中文字幕一区二区三区四区免费看| 精品理论电影在线| 亚洲国产精品网站| 九九久久九九久久| 中国日本在线视频中文字幕| 波多野结衣一区二区三区| 久久精品久久久久久| 九色91popny| 中文在线а√在线8| 一区二区三区中文字幕| 翔田千里亚洲一二三区| 国产哺乳奶水91在线播放| 日本美女一区二区三区视频| 97视频在线看| 亚洲黄色免费视频| 亚洲国产最新| 精品国产一区二区三区四区四| www.com污| 在线成人视屏| 色婷婷久久99综合精品jk白丝 | 亚洲妇女无套内射精| 成人午夜在线| 欧美视频一区二区三区四区| www.亚洲天堂网| 亚洲欧洲美洲av| 婷婷综合在线观看| 欧美精品久久久久久久自慰| 欧美亚洲天堂| 亚洲国产日韩a在线播放性色| 美女在线免费视频| www红色一片_亚洲成a人片在线观看_| 国产精品理论片| 亚洲一区bb| 天天在线视频色| 国产精品美女久久久久aⅴ| 手机看片福利永久国产日韩| 精品乱码一区二区三四区视频 | 黄页网站大全在线免费观看| 一区二区三区欧美日韩| 国产高清不卡无码视频| 亚洲综合影视| 亚洲一区二区高清| 欧美综合在线播放| 345成人影院| 欧美视频一区二区三区在线观看 | 精品国产一区二区三区在线| www在线免费观看视频| 一级女性全黄久久生活片免费| 国产人妻人伦精品| 国产极品在线观看| 在线观看亚洲一区| 国产精品www在线观看| 九九精品调教| 色综合天天综合网国产成人综合天 | 亚洲日韩视频| 欧美中在线观看| 中文字幕日产av| 国产一区二区按摩在线观看| 国产精品免费看一区二区三区| 女人18毛片一区二区三区| av高清不卡在线| 五月天亚洲综合情| 曰本三级在线| 日韩欧美在线免费观看| 亚洲少妇久久久| 日韩精品视频中文字幕| 亚洲精品理论电影| 大吊一区二区三区| 国产精品v亚洲精品v日韩精品| 91精品国产乱码久久久久久蜜臀 | 日韩一区二区在线播放| 亚州av综合色区无码一区| 日韩mv欧美mv国产网站| 中文字幕亚洲在线| 福利一区二区三区四区| 日本亚洲免费观看| 国产精品久久国产三级国电话系列| 日韩在线免费播放| 自拍偷拍国产精品| www.浪潮av.com| 精品视频成人| 日韩精品视频免费专区在线播放 | 午夜激情小视频| 国产精品视频观看| 少妇人妻在线视频| 韩国三级大全久久网站| 亚洲欧美另类中文字幕| 九九热只有精品| 欧美a级一区二区| 久久精品国产精品国产精品污 | 黄色手机在线视频| 农村少妇一区二区三区四区五区 | 在线免费日韩av| 日韩国产成人精品| 国产精品免费观看高清| 免费大片在线观看www| 欧美视频在线免费| 波多野结衣办公室双飞| 性欧美69xoxoxoxo| 国产精品久久色| 免费人成在线观看网站| 亚洲成av人片在www色猫咪| 中文字幕色网站| 成人a'v在线播放| 欧美中文字幕视频| 四虎影院在线域名免费观看| 樱桃国产成人精品视频| 国产视频1区2区3区| 狠狠综合久久av一区二区蜜桃| 久久久爽爽爽美女图片| www.成人精品| 亚洲欧美激情插| 色呦色呦色精品| 久久视频在线| 国产美女久久久| 99青草视频在线播放视| 在线看不卡av| 日本黄色小视频在线观看| 西西裸体人体做爰大胆久久久| 国产一区二区无遮挡| 日本在线观看大片免费视频| 欧美一级二级三级乱码| 精品自拍偷拍视频| 精品午夜一区二区三区在线观看| 亚洲一区3d动漫同人无遮挡 | 99热在线国产| 18加网站在线| 日韩精品资源二区在线| 欧美又粗又大又长| 国产mv日韩mv欧美| a级黄色小视频| 日韩欧美影院| 日本三级久久久| 国产特黄在线| 欧美日本乱大交xxxxx| 中文字幕乱码av| 国产乱色国产精品免费视频| 欧美日韩dvd| 国产精品美女久久久久人| 久久综合国产精品台湾中文娱乐网| 久久久久久91亚洲精品中文字幕| 26uuu亚洲综合色欧美| 中文字幕无码不卡免费视频| 精品视频久久| 91在线观看免费网站| 性欧美videos高清hd4k| 亚洲国产免费av| 亚洲欧美综合另类| 国产亚洲成年网址在线观看| 狠狠躁狠狠躁视频专区| 中文精品电影| 国产原创精品| 成人a在线观看高清电影| 久久国产精品久久久| 欧美 日韩 综合| 色先锋久久av资源部| 色欲人妻综合网| 99精品视频在线播放观看| 91国产精品视频在线观看| 综合久久一区| 美女亚洲精品| 国产视频在线观看免费| 亚洲欧洲综合另类| 亚洲国产精品成人综合久久久| 老牛嫩草一区二区三区日本| 9l视频自拍9l视频自拍| 亲子伦视频一区二区三区| 国产精品偷伦视频免费观看国产| 国产老头和老头xxxx×| 久久77777| 欧美精品一区二区三区蜜桃视频| 波多野结衣一区二区三区在线 | 三区视频在线观看| 亚洲午夜视频| 91av视频导航| 国产黄色av网站| 色综合一区二区| 久久av高潮av无码av喷吹| 精品亚洲aⅴ乱码一区二区三区| 青青青免费在线| 中文字幕乱码亚洲无线精品一区| 久久精品中文字幕一区二区三区 | av不卡在线| 不卡中文字幕在线| 欧美日日夜夜| 亚洲一区二区日本| 成人啊v在线| 欧美成人激情视频| 欧洲精品久久一区二区| 884aa四虎影成人精品一区| 中文字幕在线观看视频网站| 成人欧美一区二区三区黑人麻豆 | 国产欧美日韩视频在线| 亚洲自拍av在线| www.久久| 夜夜嗨av色一区二区不卡| 亚洲精品一区二区三区区别| 欧美日韩国产经典色站一区二区三区 | 国产伦精品一区二区三区在线播放| 亚洲精品永久免费| 老熟妇一区二区三区啪啪| 精品成人在线视频| 国产亚洲欧美精品久久久www | 超碰97在线播放| 国产精品一区二区婷婷| 亚洲成av人片在线观看| 久久久久久久久久综合| 亚洲欧美偷拍卡通变态| 成人黄色短视频| 中文字幕不卡在线| 亚洲av成人片无码| 成人精品亚洲人成在线| 992kp免费看片| 男女性色大片免费观看一区二区| 日av中文字幕| 天堂成人免费av电影一区| 国产免费裸体视频| 国产一区日韩一区| 日韩精品免费一区| 国产精品啊啊啊| 日本男女交配视频| 亚洲欧洲日本一区二区三区| 激情五月六月婷婷| 国产精品hd| 欧美久久在线观看| 亚洲三级电影在线观看| 免费毛片小视频| 香蕉久久夜色精品国产| 国产精品亚洲a| 日韩福利视频导航| 污视频网站观看| 国产一区二区精品久久| 中文字幕久久久久久久| 国产成人无遮挡在线视频| 国产伦理在线观看| 99久久综合精品| 女~淫辱の触手3d动漫| 国产女人18水真多18精品一级做| 国产又粗又黄又猛| 中文字幕一区二区三区不卡在线 | 国产在线观看无码免费视频| ww久久中文字幕| 一区二区三区在线观看免费视频| 中文天堂在线一区| 日韩高清dvd碟片| 亚洲一区在线视频观看| 欧美一级视频免费观看| 一本大道av伊人久久综合| 亚洲视频在线观看一区二区 | 国产欧美一区二| 国产91丝袜在线播放| 星空大象在线观看免费播放| 国产亚洲精品超碰| 成人免费精品动漫网站| 亚洲国产成人porn| 91久久国产综合久久91| 欧美精品xxxxbbbb| 欧美自拍偷拍第一页| 亚洲香蕉伊综合在人在线视看| 免费看a在线观看| 久久久久久久久久久av| 日韩在线影院| 亚洲综合最新在线| 日韩av综合| 欧洲精品在线一区| 欧美精品麻豆| 天天碰免费视频| 国产不卡在线一区| 中字幕一区二区三区乱码| 亚洲精品国产一区二区三区四区在线 | 日韩毛片视频| 国产69精品久久久久久久| 麻豆精品视频在线| 欧洲一级黄色片| 亚洲美女少妇撒尿| 手机av免费观看| 精品久久国产97色综合| 98在线视频| 91av在线播放| 免费一级欧美在线大片| 国产亚洲欧美一区二区| 99久久精品国产亚洲精品 | 爱情岛亚洲播放路线| 国产精品久久久久久久美男| 国产精品qvod| 国产香蕉一区二区三区| 日韩精品一级中文字幕精品视频免费观看 | 久久99精品一区二区三区| 大黑人交xxx极品hd| 一区二区三区成人| 国产一区二区女内射| 亚洲欧美在线第一页| heyzo一区| 91精品免费视频| 日韩久久久久| 免费看a级黄色片| 91片黄在线观看| 久久免费播放视频| 91精品综合久久久久久| 岛国视频免费在线观看| 欧美一级高清免费播放| 99a精品视频在线观看| 无码毛片aaa在线| 美洲天堂一区二卡三卡四卡视频| 少妇特黄一区二区三区| 亚洲国产日韩a在线播放性色| 精品国产亚洲AV| 另类图片亚洲另类| 91成人福利社区| 美乳视频一区二区| 在线亚洲欧美| 国产真实乱人偷精品| 亚洲一卡二卡三卡四卡| www.四虎在线观看| 久久夜色精品国产欧美乱| 欧美男女视频| 99精品视频网站| 久久 天天综合| 日本精品在线免费观看| 欧美疯狂做受xxxx富婆| 午夜在线免费观看视频| 国产热re99久久6国产精品| 欧美综合另类| 黄色片视频在线| 中文字幕欧美一| 国产高清视频免费观看| 欧美激情免费看| 国内毛片久久| 国产亚洲综合视频| 91视频免费看| 中文字幕av第一页| 中文字幕在线观看日韩| 91丨精品丨国产| 免费极品av一视觉盛宴| 不卡一区在线观看| 亚洲图片在线视频| 一区二区中文字幕| 亚洲tv在线| 久久免费一级片| 成人av资源网站| 天堂网视频在线| 最近2019中文免费高清视频观看www99| 成人一级视频| 日韩中文在线字幕| 99天天综合性| 欧美brazzers| 久久精品国产99国产精品澳门| 视频精品导航| 麻豆传媒网站在线观看| 99精品久久99久久久久| 日韩人妻精品中文字幕| 日日骚久久av| 国产成人福利av| 亚洲五月天综合| 亚洲视频免费在线观看| 色wwwwww| 午夜精品久久久久久久男人的天堂 | 欧美久久久久久久久久久久| 日韩精品免费综合视频在线播放| 成人性生活视频| 一级全黄肉体裸体全过程| 成人精品国产一区二区4080| 国产亚洲欧美日韩高清| 欧美成人午夜激情在线| 日韩美女毛片| 肉色超薄丝袜脚交| 日韩欧美精品免费在线| 成年人黄视频在线观看| 免费在线成人av| 国产激情精品久久久第一区二区 | 亚洲毛片aa| 成人av电影免费观看| 日本妇乱大交xxxxx| 欧美激情综合色综合啪啪五月| 精品国产精品| 亚洲日本久久久| 欧美日韩高清一区二区三区| 国产精品25p|