1、關聯:類之間的一種關系,如學生和老師。
代碼中的表示:
class Student{ private Teacher mTeacher; } class Teacher{ }
2、雙向關聯:和關聯一樣,不過它是兩個方向的,如學生和老師,老師和學生,雙向關系。
代碼中表示:
class Student{ private Teacher mTeacher; } clsass Teacher{ private Student mStuent; }
3、聚合:整體和部分的關系,is-a的關系,如手是人體的一分部。通常是在構造函數的時候,通過new創建出來。
代碼中的表示:
class People{
private Hand mHand; public People(){ mHand = new Hand(); } }
4、組合:整體和部分的關系,has-a的關系,如汽車擁有引擎。通常是通過構造函數或者setter賦值進去的。
代碼中表示:
class Car{ private Engine mEngine; public void setEngine(Engine e){ mEngine = e; } }
5、依賴:是使用的關系,例如汽車使用喇叭來鳴笛,調用汽車鳴笛的方法時,就依賴於喇叭鳴笛方法。
代碼中表示:
class Car{ private Horn mHorn; public void whistle(){ mHorn.whistle(); }
6、繼承:不解釋。
7、實現接口:不解釋。
小結:
1、繼承已實現的類圖,箭頭是三角形的,其他的是不閉合的箭頭。
2、關聯與聚合在代碼中的表示,都類似。主要是構建模型的時候,理解上的差別。