UML類圖學習設計模式
一基本概念
虛線箭頭指向依賴;
實線箭頭指向關聯;
虛線三角指向接口;
實線三角指向父類;
空心菱形能分離而獨立存在,是聚合;
實心菱形精密關聯不可分,是組合;
二圖解
類:動物的矩形代表一個類,類圖分三層 第一層類名,抽象類用斜體表示;第二層類的特性及字段和屬性;第三層類的操作方法或行為。前邊的符号 +為public -private #protected;
接口:“飛翔”是一個接口圖,與類的差別是頂端有個<<interface>>;第一層接口名稱,第二層接口方法;
繼承關系:空心三角形+實線 箭頭指向父類;子類繼承父類 表示一般與特殊的關系 即大雁繼承鳥
實作關系:空心三角形+虛線 類實作接口 即大雁實作飛翔,表示類是接口所有方法的實作
組合關系:實心菱形+實線箭頭表示 菱形指向整體
組合是一種強的擁有關系,展現了嚴格的部分與整體的關系,部分和整體的生命周期是一樣的,但部分不能離開整體單獨存在,如公司和部門是整體和部分的關系,沒有公司就不存在部門,組合關系是比聚合關系還要強的一種,他要求代表整體的對象負責代表部分的對象的生命周期;
代碼展現:成員變量
聚合關系:空心菱形+實作箭頭 菱形指向整體 ; 部分和整體的關系 部分可以離開整體單獨存在,車和輪胎整體與部分 輪胎可以離開車單獨存在,聚合關系是關聯關系的一種,是強的關聯關系;關聯和聚合在文法上無法區分,需要考慮具體的邏輯關系。
代碼展現:成員變量
關聯關系:普通箭頭的實線,指向被擁有者;是一種擁有的關系,他使一個類知道另一個類的屬性和方法,如老師學生 丈夫與妻子,關聯可以是雙向的也可以是單向的,雙向關聯可以有兩個箭頭也可以沒有箭頭,單向關聯隻能有一個箭頭;
代碼展現:成員變量
依賴關系:帶箭頭的虛線 指向被使用者;是一種使用的關系,即一個類的實作需要另一個類的協助,是以要盡量不使用雙向的互相依賴。
代碼展現:局部變量,方法的參數或者對靜态方法的調用;