團隊溝通利器之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圖之協作圖(通訊圖)
- 從零開始:管理層提升與技術團隊的團隊溝通
- UML類圖--類之間的關係
- 研發團隊溝通困難 誰的問題?
- UML類圖
- 提升團隊效能:如何與下屬進行有效溝通
- UML類圖詳解
- 看懂UML類圖和時序圖時序圖
- Javascript 設計模式之物件導向與 UML 類圖JavaScript設計模式物件
- UML 之 各種檢視簡介 & UML類圖幾種關係的總結
- UML類圖繪製例項
- UML設計:類圖說明及一步一步製作UML類圖
- 透過一份經典的UML類圖來學會如何讀懂UML類圖
- 團隊的效率在於規範和溝通,而不僅僅在於技術
- 五分鐘讀懂UML類圖
- UML類圖介紹&類的六大關係
- uml類圖中類版型區分--邊界類,控制類,實體類
- UML 類圖看這篇文章就夠了
- 輕鬆理解UML用例圖時序圖類圖的教程時序圖
- 溝通技巧
- 團隊動力之團隊發展階段理論
- markdown 繪圖利器之granphviz繪圖
- UML筆記——14種UML圖筆記
- 五分鐘看懂UML類圖與類的關係詳解
- 專案經理跨部門溝通如何溝通
- 一個軟體開發團隊多少人合適? 大型團隊失敗是由於缺乏共識和溝通帶來的技術債務 -mfeather
- Cobalt Strike 之團隊伺服器的搭建與DNS通訊演示伺服器DNS
- 銷售溝通
- 【UML】UML幾種圖的繪製
- UML圖,時序圖時序圖
- 人類的唯一使命是通過科學探索與上帝溝通
- SkyReach 團隊團隊展示
- 詳解建造者模式(含圖例、UML類圖、原始碼示例等)模式原始碼
- 團隊拓撲快速參考圖
- 共情式溝通:如何讓溝通具有穿透人心的力量穿透
- UML順序圖