Re: [請益] 我這樣解釋OOP對嗎?

看板Soft_Job (軟體人)作者時間8年前 (2017/11/16 15:30), 編輯推噓6(6013)
留言19則, 7人參與, 8年前最新討論串16/19 (看更多)
想請問各位工程師在使用別人寫好的套件時 會直接使用繼承來複用套件中的 class ,還是會封裝一層當作黑箱來用呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.70.124 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1510817436.A.74F.html

11/16 15:38, 8年前 , 1F
繼承? 不先選擇組合嗎
11/16 15:38, 1F

11/16 15:39, 8年前 , 2F
用組合的話 如果命名很類似怎麼辦
11/16 15:39, 2F

11/16 15:42, 8年前 , 3F
別人寫的東西不見得有為了要被繼承而設計
11/16 15:42, 3F

11/16 15:42, 8年前 , 4F
隨便繼承下去不小心就炸了
11/16 15:42, 4F

11/16 15:43, 8年前 , 5F
命名類似有namespace啊
11/16 15:43, 5F

11/16 18:52, 8年前 , 6F
Composition over inheritance
11/16 18:52, 6F

11/16 20:54, 8年前 , 7F
It's right: Composition over inheritance.
11/16 20:54, 7F

11/16 20:55, 8年前 , 8F
Because doesn't have overriding or overloading to
11/16 20:55, 8F

11/16 20:56, 8年前 , 9F
confuse relation.
11/16 20:56, 9F

11/16 20:56, 8年前 , 10F
如果非要繼承,繼承抽象比繼承實作好
11/16 20:56, 10F

11/16 21:04, 8年前 , 11F
繼承抽象比繼承實作好: 因為解耦掉底層的實作
11/16 21:04, 11F

11/16 21:04, 8年前 , 12F
在runtime時才對應實作(i.e. Polymorphism、泛形、Templa
11/16 21:04, 12F

11/16 21:05, 8年前 , 13F
te)
11/16 21:05, 13F

11/16 21:05, 8年前 , 14F
如:linux的HAL層解耦掉底層的IC的PolicyBased Design Pat
11/16 21:05, 14F

11/16 21:05, 8年前 , 15F
tern
11/16 21:05, 15F

11/16 21:30, 8年前 , 16F
進一步抽象可使用bridge,將介面與實作解耦
11/16 21:30, 16F

11/22 15:13, 8年前 , 17F
通常來講組合比繼承好,不過要看對方介面怎麼設計
11/22 15:13, 17F

11/22 15:14, 8年前 , 18F
至於介面實作是更好 但是很吃設計 包含自己跟對方
11/22 15:14, 18F

11/28 15:15, 8年前 , 19F
我會用封裝 繼承的耦合太大了
11/28 15:15, 19F
文章代碼(AID): #1Q3JwSTF (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1Q3JwSTF (Soft_Job)