看板 Soft_Job 關於我們 聯絡資訊
想請問各位工程師在使用別人寫好的套件時 會直接使用繼承來複用套件中的 class ,還是會封裝一層當作黑箱來用呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.70.124 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1510817436.A.74F.html
loveflames: 繼承? 不先選擇組合嗎 11/16 15:38
xxxorc: 用組合的話 如果命名很類似怎麼辦 11/16 15:39
legendmtg: 別人寫的東西不見得有為了要被繼承而設計 11/16 15:42
legendmtg: 隨便繼承下去不小心就炸了 11/16 15:42
legendmtg: 命名類似有namespace啊 11/16 15:43
ripple0129: Composition over inheritance 11/16 18:52
sunsamy: It's right: Composition over inheritance. 11/16 20:54
sunsamy: Because doesn't have overriding or overloading to 11/16 20:55
sunsamy: confuse relation. 11/16 20:56
loveflames: 如果非要繼承,繼承抽象比繼承實作好 11/16 20:56
sunsamy: 繼承抽象比繼承實作好: 因為解耦掉底層的實作 11/16 21:04
sunsamy: 在runtime時才對應實作(i.e. Polymorphism、泛形、Templa 11/16 21:04
sunsamy: te) 11/16 21:05
sunsamy: 如:linux的HAL層解耦掉底層的IC的PolicyBased Design Pat 11/16 21:05
sunsamy: tern 11/16 21:05
loveflames: 進一步抽象可使用bridge,將介面與實作解耦 11/16 21:30
Killercat: 通常來講組合比繼承好,不過要看對方介面怎麼設計 11/22 15:13
Killercat: 至於介面實作是更好 但是很吃設計 包含自己跟對方 11/22 15:14
bitcch: 我會用封裝 繼承的耦合太大了 11/28 15:15