Re: [問題] 繼承方法的缺點

看板C_Sharp (C#)作者 (ArDlCan)時間5年前 (2019/06/07 22:32), 編輯推噓1(100)
留言1則, 1人參與, 5年前最新討論串2/3 (看更多)
※ 引述《aoksc (重出江湖)》之銘言: : 請問各位 : 在跟同事說明少把工具方法直接寫在基礎類別 : 因為這樣會讓全部繼承的類別都擁有這方法 : 但這些方法又只有一兩個地方用到 : 有同事故意challenge說 : 寫在父類別又怎樣 : 沒用到就沒用到阿! : 我也只能反擊說這會讓整個程式碼很雜亂 : 不過也的確就不要呼叫就好 : 不考慮到DI的問題我的反擊論點的確是很薄弱 : 請問有什麼更強力的觀點可以反擊繼承方法沒用到沒差 : 所以可以把方法都寫在父類別中的謬論 : ----- : Sent from JPTT on my HTC_U-3u. 優先考慮組合,而非繼承 許多場合,繼承只是一種短期的解決方法。這種解法常會造成太過龐大、深層的繼承結構 ,令程式碼難以維護。因此,我們必須時時對它保持戒心,謹慎使用。 繼承之所以會導致難以維護,是因為一旦修改了上層的基礎類別,就會產生牽一髮而動全 身的連鎖反應。 將繼承結構改用組合的方式來設計,類別階層將變得比較扁平,而類別的行為可以透過組 合的方式加以擴充。 跟原先使用繼承的設計比起來,使用組合物件的方式提供了更大的彈性。 以上是之前我看《軟體構築美學》留下的筆記,供您參考 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.160.71.127 (香港) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1559917963.A.00A.html

06/09 19:53, 5年前 , 1F
推薦 深入淺出 設計模式
06/09 19:53, 1F
文章代碼(AID): #1S-dMB0A (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1S-dMB0A (C_Sharp)