日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

类图中的6大关系

發布時間:2024/2/28 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 类图中的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類:

  • A類中用到了B類
  • A類中有B類型的成員變量
  • B類是A類方法的返回類型
  • B類是A類方法的參數類型
  • 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中的實現和繼承。而實現、關聯、聚合、組合這四種關系都是語義級別的,所以從代碼層面并不能完全區分各種關系,但總的來說,后幾種關系所表現的強弱程度依次為:組合>聚合>關聯>依賴。

    總結

    以上是生活随笔為你收集整理的类图中的6大关系的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。