UML中依賴/泛化/關聯/實現/彙總/組合的C#實現 [轉]
這幾天要寫點文檔用到UML的類圖,重新再次撿起以前的知識,多多少少有點總結,在這裡記錄下來,也算是以備後用吧。
在這裡推薦大家可以嘗試著用用以下我推薦的二種UML工具:
- Visual.UML.Developer.Edition.v5.1(感覺不錯,功能強大,不過收費)
- StarUML(開源免費,05年之後就沒有再維護更新過,韓國人開發,符合亞洲人的習慣)
在UML類圖中,類與類之間的關係主要有以下幾種:
所謂的泛化就是我們最常用的繼承關係
1: public class Employee
2: {
3:
4: }
5: public class SaleEmployee:Employee
6: {
7:
8: }
依賴關係是指一個類對別一個類的依賴,比如說Employee類中有一個方法叫做TakeMoney(Bank bank)這個方法,在這個方法的參數中用到了Bank這個類,那麼這個時候可以說Employee類依賴了Bank這個類,如果Bank這個類發生了變化那麼會對Employee這個類造成影響。
1: public class Employee
2: {
3: public long TakeMoney(Bank bank)
4: {
5: return long.MaxValue;
6: }
7: }
關聯關係有點邊界模糊和依賴有點像,但又完全不像。關聯是指一個類用到了另外的一個類,但不依賴。還是用代碼來表達比較貼切
1: public class Shcool
2: {
3: public Student stu;
4: }
5: public class Student
6: {
7:
8: }
彙總是一種單向關係,彙總與關聯的區別在於彙總的兩個類之間的關係在概念層次上不是一個層級的,一般來說彙總中的類別關係總是一個類比別一個類要進階一些,而關聯基本上是平級的
1: public class Car
2: {
3: public Engine engine;
4: public Wheel wheel;
5: }
6: public class Engine
7: {
8:
9: }
10: public class Wheel
11: {
12:
13: }
合成是一種特殊的彙總形式,它是提類與類之間的聯絡是非常密切的,少了那一個也不行。
簡單的說就是介面