1.關聯關係
當一個類的對象作為另一個類的對象的成員時,那麼這兩個類之間就有了關聯關係.
C#代碼如下:
///
/// 關聯關係
///
public class 老公
{
private 老婆 老婆;
}
public class 老婆
{
}
uml圖如下:
2.關聯關係中的多重性
是指類A的一個執行個體對應類B的執行個體的個數
C#代碼如下:
///
/// 關聯關係中的多重性
///
public class 狗
{
private 腿[] 腿 = new 腿[4]; //這裡值得商榷,狗與腿應該是組合的關係,因為狗沒了,腿也沒了,可以換成狗和多袋狗食 added by zhangjun at 2011-03-30
}
public class 腿
{
}
uml圖如下:
3.關聯關係中的方向性
在一個大公司裡,公司的總裁只認識那些核心職員,不能認識所有的普通職員,而所有的職員都認識總裁.
C#代碼如下
///
/// 關聯關係中的方向性
///
public class 大公司總裁
{
private 核心職員 核心職員;
}
public class 核心職員
{
private 大公司總裁 大公司總裁;
}
public class 普通職員
{
private 大公司總裁 大公司總裁;
}
uml圖如下:
4.彙總關係
是關聯關係的特例,表示兩個類的執行個體之間有整體與部分的關係,處於空心一端是整體,另一端為部分.彙總關係並不隱含整體消失而導致部分也消失.
如公司倒閉了,但做為職員的人還在,不會隨之滅亡.
C#代碼如下:
///
/// 彙總關係
///
public class 公司
{
private 職員 職員;
}
public class 職員
{
}
uml圖如下:
5.組合關係
是彙總關係的一個特例,在彙總關係含義的基礎上,增加了整體與部分之間"皮之不存,毛將焉附"的語義.實心的菱形表示整體,另一端表示部分.
C#代碼如下:
///
/// 組合關係
///
public class 樹
{
private 樹葉 樹葉;
}
public class 樹葉
{
}
uml圖如下:
6.依賴關係
相對於關聯關係, 依賴關係是一種比較弱的關係,被"依賴者"的變化有可能影響"依賴者".
C#代碼如下:
///
/// 依賴關係
///
public class 人類
{
private 糧食 糧食;
}
public class 糧食
{
}
uml圖如下:
7.繼承關係
類A是類B的一種,如下列代碼小學生或大學生都是學生,在C#中用關鍵字abstract聲明.
C#代碼如下:
///
/// 繼承關係
///
public abstract class 學生
{
public abstract void 學習();
}
public class 小學生 : 學生
{
public override void 學習()
{
}
}
public class 大學生 : 學生
{
public override void 學習()
{
}
}
uml圖如下:
8.實現關係
一方作為要求提出來,另一方具體完成這個要求.在C#中用關鍵字interface聲明.如下列代碼,去公園散步我可以步行或乘車去,都可以實現.
C#代碼如下
///
/// 實現關係
///
public interface 去公園
{
void 散步();
}
public class 步行 : 去公園
{
public void 散步()
{
}
}
public class 乘車 : 去公園
{
public void 散步()
{
}
}
uml圖如下: