[問題] 繼承方法的缺點

看板C_Sharp (C#)作者 (重出江湖)時間5年前 (2019/06/07 11:10), 5年前編輯推噓4(5124)
留言30則, 13人參與, 4年前最新討論串1/3 (看更多)
請問各位 在跟同事說明少把工具方法直接寫在基礎類別 因為這樣會讓全部繼承的類別都擁有這方法 但這些方法又只有一兩個地方用到 有同事故意challenge說 寫在父類別又怎樣 沒用到就沒用到阿! 我也只能反擊說這會讓整個程式碼很雜亂 不過也的確就不要呼叫就好 不考慮到DI的問題我的反擊論點的確是很薄弱 請問有什麼更強力的觀點可以反擊繼承方法沒用到沒差 所以可以把方法都寫在父類別中的謬論 ----- Sent from JPTT on my HTC_U-3u. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.74.83.10 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1559877016.A.E1D.html

06/07 11:28, 5年前 , 1F
並不是要不要放在父類別,而是這個方法是不是「該」放在
06/07 11:28, 1F

06/07 11:28, 5年前 , 2F
這裡
06/07 11:28, 2F
對啦 我們是在討論適合不適合 我是認為只有有一兩個地方在用的方法不適合寫在父類別 ※ 編輯: aoksc (42.74.83.10 臺灣), 06/07/2019 11:41:58

06/07 13:36, 5年前 , 3F
重點是這個方法是不是屬於這個類別內的功能,不是使用次數
06/07 13:36, 3F

06/07 19:21, 5年前 , 4F
繼承可以有多層,或者可以考慮實作界面。
06/07 19:21, 4F

06/07 20:19, 5年前 , 5F
重點是這個方法是不是屬於這個類別內的功能,還有這個方法
06/07 20:19, 5F

06/07 20:20, 5年前 , 6F
的存取權限該設成什麼,你只提工具方法、一兩個地方實在沒
06/07 20:20, 6F

06/07 20:20, 5年前 , 7F
辦法具體討論適不適合
06/07 20:20, 7F

06/07 20:21, 5年前 , 8F
那一兩個地方到底是哪一兩個地方,那方法到底是在幹麻
06/07 20:21, 8F

06/07 20:45, 5年前 , 9F
是否可以舉個例子,我覺得重點不在是否只有一兩個地方
06/07 20:45, 9F

06/07 20:46, 5年前 , 10F
使用,而是這個method和父類別或子類別哪個相關性高
06/07 20:46, 10F

06/07 23:43, 5年前 , 11F
我覺得這種Helper Function就用組合去做吧,用繼承可以
06/07 23:43, 11F

06/07 23:44, 5年前 , 12F
,但是當子類別也要用這個method,而且略有不同時該怎辦
06/07 23:44, 12F

06/07 23:44, 5年前 , 13F
?很容易就暴走了
06/07 23:44, 13F

06/07 23:45, 5年前 , 14F
而且後續維護的人會起笑
06/07 23:45, 14F

06/08 08:52, 4年前 , 15F
繼承 會使類別複雜 ,個人認為。看程式的需求以及維護
06/08 08:52, 15F

06/08 08:52, 4年前 , 16F
方式
06/08 08:52, 16F

06/08 12:43, 4年前 , 17F
都不在乎,叫他回去寫函數導向就好了啊
06/08 12:43, 17F

06/08 12:45, 4年前 , 18F
你不是主管也不是客戶,提點一下就好,他堅持就讓他堅持吧
06/08 12:45, 18F

06/10 11:57, 4年前 , 19F
可以考慮用static 來分類阿
06/10 11:57, 19F

06/10 21:29, 4年前 , 20F
我想到wpf的attached property 完全不用改到原來的類別
06/10 21:29, 20F

06/11 17:41, 4年前 , 21F
問他有沒有聽過可讀性
06/11 17:41, 21F

06/12 23:53, 4年前 , 22F
c#的繼承不是只能有一層?沒什麼雜亂或c++的層層疊在一起
06/12 23:53, 22F

06/12 23:53, 4年前 , 23F
06/12 23:53, 23F

06/13 00:28, 4年前 , 24F
C# 是不能多重繼承, 不是繼承只能有一層
06/13 00:28, 24F

06/13 00:37, 4年前 , 25F
可以舉噴射機繼承鳥類類別的例子
06/13 00:37, 25F

06/13 00:37, 4年前 , 26F
鳥類會飛、會叫 結果弄個飛機繼承它 整個邏輯都錯亂了
06/13 00:37, 26F

06/13 00:38, 4年前 , 27F
為了一時的方便這樣搞 只會讓系統越來越難維護
06/13 00:38, 27F

06/13 00:39, 4年前 , 28F
不過有些人的心態是會動就好.. 你不是主管就隨他去吧
06/13 00:39, 28F

06/13 00:40, 4年前 , 29F
你可以google 裡氏替換原則
06/13 00:40, 29F

06/14 08:31, 4年前 , 30F
只要鳥類沒有吃東西大便等多餘的功能 飛機繼承它是ok的
06/14 08:31, 30F
文章代碼(AID): #1S-TMOuT (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1S-TMOuT (C_Sharp)