團隊溝通利器之UML——類圖
一:用途
用於描述系統的靜態結構,或許在所有的uml圖中,類圖是我們最熟悉不過的,在我們沒有接觸uml的時候,可能都看過
類圖,早在vs2005裡面“解決方案資源管理器”的下邊有一個“檢視類圖”的小圖示,並且還能支援“正向“和”反向“工程。
反向工程
首先我們定義兩個類:User和Product
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace ConsoleApplication1 7 { 8 class Program 9 {10 static void Main(string[] args)11 {12 13 }14 }15 16 ///17 /// 使用者類18 /// 19 public class User20 {21 public string Name { get; set; }22 23 public int Age { get; set; }24 25 public string Sex { get; set; }26 }27 28 ///29 /// 產品類30 /// 31 public class Product32 {33 public string Name { get; set; }34 35 public DateTime CreateTime { get; set; }36 }37 }
然後我們點選”檢視類圖“,看看給我們生成的類圖是咋樣的。
正向工程
既然是正向工程,那我們就可以在”類設計器“上面隨便拖一些元素看看效果,細節的大家可以自己玩一玩。
二:基本元素
1:類圖,列舉,介面,抽象類,結構,委託
這幾個元素我想學OO的都已經爛熟於心了,也沒有什麼好解釋的。
2:關聯關係
關聯關係一般作為類與類之間的一種強依賴關係,這種關係具有穩定和長期性,比如在C#中的程式碼實現為:將一個類作為
另一個類中的屬性,比如這裡我新建一個Order類,將User類作為Order類的一個屬性。
先看類圖:
然後看下是否為我們需要的程式碼:
3:繼承關係
在OO的三大特性中就有繼承,我們都知道繼承這麼個概念,那麼在類圖中該如何展現呢?我們發現在User和Product
中都有一個Name屬性,根據OO原則我們需要將Name屬性單獨提出來,然後讓其他類繼承。
下面我們看下生成程式碼,是否真如類圖描述一樣,(雙擊)任意類圖即可,嘿嘿,是不是有點意思。
好,到現在為止,在類圖這一塊,我們已經掌握了20%,只要多練習練習即可,當然你可能覺得這些程式碼比較死,是的,
實際開發中,我們常會用CodeSmith來解決這些枯燥無味的程式碼。
在uml的類圖中還有幾個關係需要表達一下,只不過實際應用比較少而已,好,下面我們看看”建模專案“裡面的UML類圖
4:依賴關係
同樣它也是類與類之間的關係,只不過這種關係比較弱,具有臨時性和特定環境下的偶然性,可能大家不是很容易理解,
如果用C#解釋就一目瞭然了,在程式碼中一般是一個類作為另一個類中方法的引數,既然是引數,那麼它的生命週期你懂的。
5:聚合關係
在官方文件中它描述的是一種”has-a“的關係,也就是整體與區域性的關係,整體掛了,區域性不見得就掛了,比如:你的大功率
電器掛了,不見得裡面的電池就掛了,其次我們要注意”空心菱形“是整體端,“箭頭”端是區域性端。
6:組合關係
在官方文件中它描述的是一種”contains-a“的關係,同樣也是表示整體和區域性的關係,整體掛了,區域性也掛了,因為他們享有
共同的生命週期,比如:你掛了,你的心臟肯定掛了,同樣"實心菱形“是整體端。
下面我們看看稍微複雜一點的”畫圖軟體“的類圖設計,大家也可以看看自己手頭的專案類圖,是否符合OO規範。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4479/viewspace-2811527/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 團隊溝通技術(轉載)
- 軟體工程-團隊-工程-溝通軟體工程
- 跨團隊溝通:避免依賴 - pd
- 異地創業團隊如何做團隊溝通協作創業團隊
- 從墨子用人到團隊溝通管理(轉)
- 多元文化團隊的溝通問題(轉)
- 【UML之物件圖VS類圖】物件
- 研發團隊溝通困難 誰的問題?
- 創業團隊工作溝通的七個原則創業團隊
- 創業團隊該如何溝通與處理矛盾?創業團隊
- 虛擬團隊內部和外部的溝通風險
- UML圖之協作圖(通訊圖)
- 設計模式之UML類圖設計模式
- UML類圖--類之間的關係
- 提升團隊效能:如何與下屬進行有效溝通
- 線上團隊協作工具+線上UML工具
- 團隊管理的簡單總結:少即是多,體力透支,負能量管理,自我進化團隊,溝通
- 團隊溝通應用 Slack 的五款開源替代品
- 敏捷開發案例:用白板解決專案管理和團隊溝通敏捷專案管理
- UML類圖詳解
- UML類圖總結
- UML類圖關係
- UML 類圖及關係
- 深入淺出UML類圖
- UML基礎系列:類圖
- 團隊作業—第三週—設計類圖
- 團隊作業-第三週-設計類圖
- 看懂UML類圖和時序圖時序圖
- Javascript 設計模式之物件導向與 UML 類圖JavaScript設計模式物件
- 團隊的效率在於規範和溝通,而不僅僅在於技術
- UML 之 各種檢視簡介 & UML類圖幾種關係的總結
- 全面認識UML類圖元素
- 深入淺出UML類圖(五)
- 深入淺出UML類圖(三)
- 深入淺出UML類圖(二)
- 深入淺出UML類圖(一)
- UML類圖(上):類、繼承和實現繼承
- UML類圖與類的關係詳解