看板 C_Sharp 關於我們 聯絡資訊
請問各位 在跟同事說明少把工具方法直接寫在基礎類別 因為這樣會讓全部繼承的類別都擁有這方法 但這些方法又只有一兩個地方用到 有同事故意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
annies5: 並不是要不要放在父類別,而是這個方法是不是「該」放在06/07 11:28
annies5: 這裡06/07 11:28
對啦 我們是在討論適合不適合 我是認為只有有一兩個地方在用的方法不適合寫在父類別 ※ 編輯: aoksc (42.74.83.10 臺灣), 06/07/2019 11:41:58
t64141: 重點是這個方法是不是屬於這個類別內的功能,不是使用次數 06/07 13:36
jizang: 繼承可以有多層,或者可以考慮實作界面。 06/07 19:21
ssccg: 重點是這個方法是不是屬於這個類別內的功能,還有這個方法 06/07 20:19
ssccg: 的存取權限該設成什麼,你只提工具方法、一兩個地方實在沒 06/07 20:20
ssccg: 辦法具體討論適不適合 06/07 20:20
ssccg: 那一兩個地方到底是哪一兩個地方,那方法到底是在幹麻 06/07 20:21
CloudyWing: 是否可以舉個例子,我覺得重點不在是否只有一兩個地方 06/07 20:45
CloudyWing: 使用,而是這個method和父類別或子類別哪個相關性高 06/07 20:46
forewero: 我覺得這種Helper Function就用組合去做吧,用繼承可以 06/07 23:43
forewero: ,但是當子類別也要用這個method,而且略有不同時該怎辦 06/07 23:44
forewero: ?很容易就暴走了 06/07 23:44
forewero: 而且後續維護的人會起笑 06/07 23:45
Randy1230: 繼承 會使類別複雜 ,個人認為。看程式的需求以及維護 06/08 08:52
Randy1230: 方式 06/08 08:52
Litfal: 都不在乎,叫他回去寫函數導向就好了啊 06/08 12:43
Litfal: 你不是主管也不是客戶,提點一下就好,他堅持就讓他堅持吧 06/08 12:45
feeya: 可以考慮用static 來分類阿 06/10 11:57
testPtt: 我想到wpf的attached property 完全不用改到原來的類別 06/10 21:29
Nilife: 問他有沒有聽過可讀性 06/11 17:41
cia1099: c#的繼承不是只能有一層?沒什麼雜亂或c++的層層疊在一起 06/12 23:53
cia1099: 吧 06/12 23:53
t64141: C# 是不能多重繼承, 不是繼承只能有一層 06/13 00:28
vi000246: 可以舉噴射機繼承鳥類類別的例子 06/13 00:37
vi000246: 鳥類會飛、會叫 結果弄個飛機繼承它 整個邏輯都錯亂了 06/13 00:37
vi000246: 為了一時的方便這樣搞 只會讓系統越來越難維護 06/13 00:38
vi000246: 不過有些人的心態是會動就好.. 你不是主管就隨他去吧 06/13 00:39
vi000246: 你可以google 裡氏替換原則 06/13 00:40
testPtt: 只要鳥類沒有吃東西大便等多餘的功能 飛機繼承它是ok的 06/14 08:31