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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

OOD沉思录 --- 类和对象的关系 --- 使用关系

發布時間:2025/5/22 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OOD沉思录 --- 类和对象的关系 --- 使用关系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用關系

對象A的方法MethodA使用了B的方法MethodB,則表示A對B存在使用關系 使用關系的最關鍵問題在于,A如何找到B,存在6種方案

方案一: ?????

A包含了B,B作為一個成員定義在A的類中,那么在MethodA中可以直接調用B.MethodB() ?????

如汽車可以包含車輪。 ?????

如果汽車需要加油,那么就需要調用"加油站B.加油()"??????

[cpp] view plaincopyprint?
  • class?汽車??
  • {??
  • ?????加油站?m_加油站;??
  • ?????加油(...)??
  • ?????{??
  • ??????//調用某加油站的加油方法??
  • ???????m_加油站.加油();??
  • ?????}??
  • }??
  • ????? 那么關鍵問題在于,汽車如何知道加油站X? ?????

       如果讓汽車包含加油站,肯定不合適(太土豪了,呵呵),那么還有以下5種方案:

    方案二: ????? 通過形參將加油站傳遞給調用的方法,那么調用形式就是“加油站.加油()",那么汽車的定義則如下

    [cpp] view plaincopyprint?
  • class?汽車??
  • {??
  • ?????加油(加油站?X)??
  • ?????{??
  • ???????X.加油();??
  • ?????}??
  • }??
  • 方案三:

    ????? 通過一個第三方類來獲得加油站,如地圖類,則汽車的定義如下:?????

    [cpp] view plaincopyprint?
  • class?汽車??
  • {??
  • ?????加油()??
  • ?????{??
  • ???????加油站?X=地圖.查找一個加油站();??
  • ???????X.加油();??
  • ?????}??
  • }??
  • 方案四: ?????

    全世界只有一個加油站,那么所有的汽車都到這里來加油,則汽車的定義如下:

    [cpp] view plaincopyprint?
  • class?汽車??
  • {??
  • ?????加油()??
  • ?????{???????????????
  • ???????加油站.TheInstance.加油();??
  • ?????}??
  • }??
  • ????? 這種情況就是單件模式的例子,還記得它嗎?

    方案五: ?????

    對款爺來說,隨時修一個加油站,加完油就推平,這種情況在大部分領域行不通(代價太高),但是在軟件領域可以(因為代價很低)

    這種情況下,汽車的定義如下:

    [cpp] view plaincopyprint?
  • class?汽車??
  • {??
  • ?????加油()??
  • ?????{???????????????
  • ???????加油站?X=new?加油站();??
  • ???????X.加油();??
  • ???????delete?X;??
  • ?????}??
  • }???
  • 方案六: ?????

    汽車制造商在汽車的玻璃上明確標注了,此車只能在名叫"XX加油站",則汽車的定義如下:

    [cpp] view plaincopyprint?
  • class?汽車??
  • {??
  • ?????string?加油站名="XX加油站";??
  • ?????加油()??
  • ?????{???????????????
  • ???????加油站?X=企業黃頁.查找(加油站名);??
  • ???????X.加油();??
  • ?????}??
  • }??
  • ????? 這種方案,在有的地方叫弱引用,汽車并不直接包含加油站,但是包含加油站的一個標示

    轉載于:https://www.cnblogs.com/stst/p/4909620.html

    總結

    以上是生活随笔為你收集整理的OOD沉思录 --- 类和对象的关系 --- 使用关系的全部內容,希望文章能夠幫你解決所遇到的問題。

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