[問題] 繼承方法的缺點

作者: aoksc (重出江湖)   2019-06-07 11:10:10
請問各位
在跟同事說明少把工具方法直接寫在基礎類別
因為這樣會讓全部繼承的類別都擁有這方法
但這些方法又只有一兩個地方用到
有同事故意challenge說
寫在父類別又怎樣
沒用到就沒用到阿!
我也只能反擊說這會讓整個程式碼很雜亂
不過也的確就不要呼叫就好
不考慮到DI的問題我的反擊論點的確是很薄弱
請問有什麼更強力的觀點可以反擊繼承方法沒用到沒差
所以可以把方法都寫在父類別中的謬論
作者: annies5 (念渝)   2019-06-07 11:28:00
並不是要不要放在父類別,而是這個方法是不是「該」放在這裡
作者: t64141 (榕樹)   2019-06-07 13:36:00
重點是這個方法是不是屬於這個類別內的功能,不是使用次數
作者: jizang (阿魯米)   2019-06-07 19:21:00
繼承可以有多層,或者可以考慮實作界面。
作者: ssccg (23)   2019-06-07 20:19:00
重點是這個方法是不是屬於這個類別內的功能,還有這個方法的存取權限該設成什麼,你只提工具方法、一兩個地方實在沒辦法具體討論適不適合那一兩個地方到底是哪一兩個地方,那方法到底是在幹麻
作者: CloudyWing (孤單ㄉ翼)   2019-06-07 20:45:00
是否可以舉個例子,我覺得重點不在是否只有一兩個地方使用,而是這個method和父類別或子類別哪個相關性高
作者: forewero (木日一)   2019-06-07 23:43:00
我覺得這種Helper Function就用組合去做吧,用繼承可以,但是當子類別也要用這個method,而且略有不同時該怎辦?很容易就暴走了而且後續維護的人會起笑
作者: Randy1230 (Randylol)   2019-06-08 08:52:00
繼承 會使類別複雜 ,個人認為。看程式的需求以及維護方式
作者: Litfal (Litfal)   2019-06-08 12:43:00
都不在乎,叫他回去寫函數導向就好了啊你不是主管也不是客戶,提點一下就好,他堅持就讓他堅持吧
作者: feeya (24 August 升格為鄉民)   2019-06-10 11:57:00
可以考慮用static 來分類阿
作者: testPtt (測試)   2019-06-10 21:29:00
我想到wpf的attached property 完全不用改到原來的類別
作者: Nilife (Al-Qaeda)   2019-06-11 17:41:00
問他有沒有聽過可讀性
作者: cia1099 (阿兜啊)   2019-06-12 23:53:00
c#的繼承不是只能有一層?沒什麼雜亂或c++的層層疊在一起吧
作者: t64141 (榕樹)   2019-06-13 00:28:00
C# 是不能多重繼承, 不是繼承只能有一層
作者: vi000246 (Vi)   2019-06-13 00:37:00
可以舉噴射機繼承鳥類類別的例子鳥類會飛、會叫 結果弄個飛機繼承它 整個邏輯都錯亂了為了一時的方便這樣搞 只會讓系統越來越難維護不過有些人的心態是會動就好.. 你不是主管就隨他去吧你可以google 裡氏替換原則
作者: testPtt (測試)   2019-06-14 08:31:00
只要鳥類沒有吃東西大便等多餘的功能 飛機繼承它是ok的

Links booklink

Contact Us: admin [ a t ] ucptt.com