类图中的6大关系
文章目錄
- 類圖中的6大關系
- 1. 依賴關系(Dependency)
- 2. 泛化關系(generalization)
- 3. 實現關系(Implementation)
- 4. 關聯關系(Association)
- 5. 聚合關系(Aggregation)
- 6. 組合關系(Composite)
- 7. 總結
類圖中的6大關系
1. 依賴關系(Dependency)
如果在一個A類中用到了另一個B類,那么就說A類依賴B類。類圖表示如下:
只要B類滿足下面條件中的任意一個,就說A類依賴B類:
2. 泛化關系(generalization)
泛化關系可以說是繼承關系,是依賴關系的特例。
用類圖表示:
3. 實現關系(Implementation)
B類實現了A接口,就說A接口和B類之間有實現關系,實現關系是依賴關系的特例。
用類圖表示:
4. 關聯關系(Association)
關聯關系表示的是類與類之間的聯系,例如:
class Person {private IdCard idCard; } class IdCard {}在上面的代碼中,Person和IdCard就是單向一對一的關系。
又如:
class Person {private IdCard idCard; } class IdCard {private Person person; }在上面的代碼中,我們說Person和IdCard是雙向一對一的關系。
5. 聚合關系(Aggregation)
聚合關系表示的是整體和部分的關系,整體和部分是可以分開的,它是關聯關系的特例。
class Computer {//Computer和Monitor、Mouse是可以分離的private Monitor monitor;private Mouse mouse;public void setMonitor(Monitor monitor) {this.monitor = monitor;}public void setMouse(Mouse mouse) {this.mouse = mouse;} }class Monitor {}class Mouse {}用類圖表示:
6. 組合關系(Composite)
和聚合關系類似,組合關系關系也是用來描述整體和部分的關系,但是,它規定了部分和整體是不能分開的。
class Computer {//Computer這個整體和Monitor、Mouse這兩個部分是不能分離的private Monitor monitor = new Monitor();private Mouse mouse = new Mouse(); }class Monitor {}class Mouse {}用類圖描述:
7. 總結
依賴關系和泛化關系很好理解,對應于java中的實現和繼承。而實現、關聯、聚合、組合這四種關系都是語義級別的,所以從代碼層面并不能完全區分各種關系,但總的來說,后幾種關系所表現的強弱程度依次為:組合>聚合>關聯>依賴。
總結
- 上一篇: 电竞巅峰对决:惊心刺激,默契配合,谁能笑
- 下一篇: An internal error oc