C_Sharp 板


LINE

先簡單結論一下, 1. 基於原PO的命名方法,我很直覺的就認為原PO的son/father類別, 分別是指"子類別"與"父類別",而不是"兒子"類別和"爸爸"類別。 兒子是要繼承什麼鬼? 又不是爸爸掛了。 2. "子類別"繼承"父類別"是天經地義的廢話。事實上,也已經的確這麼實作了。 看不懂到底是在打誰的臉。 3. 即便原意是別的意思,基於只有看到strA, strB兩個屬性, 我認為只有超能力才能判斷這兩個類別該不該繼承。(用你的話 有沒有is) 4. 講錯的觀念就是錯的,即使後來改成"類別不該繼承自衍生類別"也不會比較好 抽象類別也可能是衍生類別。講錯人人都會,沒什麼。硬拗比較令人不耐煩。 5. 附贈以下說明,多了沒有了,花掉太多時間。 作者: adrianc (123) 看板: C_Sharp 標題: Re: [問題] 變數宣告在if結構裡 時間: Tue May 20 11:18:52 2014 ※ 引述《StupidGaGa (笨嘎嘎)》之銘言: : 標題: Re: [問題] 變數宣告在if結構裡 : 時間: Mon May 19 14:14:22 2014 : : 類別本來不應該繼承類別, : 類別是要繼承於抽像類別或介面。 : : 就算不管DesignPattern, : 我還是那句話, : 類別不該繼承於類別, : 類別應該繼承於抽像類別或介面。 : : → ssccg:先不管son father這些名稱,為什麼類別不應該繼承類別? 05/19 17:22 ------------------------------------------ 昨天是午餐,今天是早餐... 首先我也很好奇"類別不該繼承類別"這句話是哪位大師說的, 可否指點一下? 為什麼ssccg大會說先不管這些名稱,因為原PO的命名本來就沒什麼好討論了。 如果你對son/father這麼有意見,換成sun/futher你會不會高興一點? 所以我才說你直接批我變數 xxx strA 還比較快... sun/fucker有沒有所謂的"is"關係? 我又沒通靈我怎麼知道 另外你說我"認為在最小幅度內更動原PO程式碼"也是錯的。 我認為的是"既然你已經用了繼承,就不要用完還在寫重覆程式碼"。 已經用了的繼承正不正確? 沒有資訊,我無法判斷。 既然你說"繼承這種基礎概念反而是最需要釐清的", 那我真的想釐清一下,"類別不該繼承類別"是打哪來的說法... 甚至還有原則2"類別不能繼承類別,有兩個情況下才能打破"... 然後舉一個跟主題沒有直接關係的多階層繼承的例子。(多階層繼承不好) 我想Ga大是由依賴倒轉原則 --1. 高階模組不該依賴低階,兩者都應依賴於抽象 --2. 抽象不應依賴細節。細節應依賴抽象。 加上 Program to an interface, not an implementation (GoF) 聯想而來。原則內容先不贅述了。 其實我推文也有說,繼承自抽象是個好的習慣, 會避免違反設計原則和相關衍生問題。 甚至如果可以選擇的話,介面可能比抽象類別更好一點。 我們要繼承的對象,有幾種可能 1. 介面 2. 抽象類別 3. 類別 先簡單說明一下差別: 介面只定義了行為,也就是這個物件能提供我什麼服務,不管你是什麼,怎麼做。 抽象類別也定義了行為,且可能包含這種物件共同的部份實作。但是使用者仍然 無法直接實體化(new)這個類別。 類別則有自己的完整實作,可實體化。 如果今天你的論點是,對抽象開發,而不是實作。 OK,那今天的問題也不是 設計成繼承自抽象類別或類別,而是繼承自介面或/類別與抽象類別。 因為繼承自抽象類別一樣相依到共通實作的部份。 相依到實作會有什麼問題先暫不討論。 設計成繼承自抽象類別與類別,使用上的最大差異其實只在於 抽象類別強制你不能實體化,所以你必須在某個地方為他指定完整實作(具體類別) 這個限制用類別可不可以做到? 其實也可以... 真要說壞處的話,應該是繼承自類別可能覆寫掉某個已知的實作以致非預期的使用。 某種程度上,我覺得抽象類別像是一種設計演進過程中的過渡產品。 他建立了一定程度的抽象,同時為了共同的部份也保留了實作。 造成了使用者端很可能不得不依賴到部份的實作。 為了達成同性質的類別使用相同的實作避免重覆程式這件事,其實也有別的解法。 相關討論查查以組合取代繼承應該有不少說明。 關於介面和抽象類別的不同,我覺得由性質說明容易進入誤區。 換個角度解釋一下。 抽象類別的本質是一種類別的範本,繼承自此範本的類別都有著部份相似的性質。 使用者端引用這個範本,並預期這個範本產生的實體有規範中的性質 例如我叫來一個People,無論你是Male或Female,反正你都會Drive,怎麼Drive不管。 介面這個東西則是試圖完全隔開物件,達成更高階的抽象化。 我不只不在乎你怎麼做,甚至不在乎你是什麼。 例如我只知道我要一個ICanDrive,你給我隻會開車的猴子或香蕉我都不介意。 這樣就回歸到本質-參考一個類別時,是因為你預期這個類別會提供你某種服務。 最後,討論這個也不是自爽用的,至少在我的工作中不是。 銀子很實在,所以我平常都只潛水不回文多賺銀子無誤。 別動不動想打人臉,除非他是你孫子。 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.109.209
※ 文章網址: http://webptt.com/m.aspx?n=bbs/C_Sharp/M.1400555935.A.301.html
1F:→ StupidGaGa:你如果認為,你的範例son:father OK就OK吧! 05/20 11:30
2F:→ StupidGaGa:你有你的想法,我有我的經驗。我就此打住不說了。 05/20 11:31
3F:→ StupidGaGa:而且,感覺你是在意氣用事而已.... 05/20 11:36
4F:→ adrianc:我不是在嘴炮 所以我一不亂扣你帽子 二對我說的每句話負責 05/20 13:25
5F:→ adrianc:如果你覺得你(或是我)在嘴炮 那的確不用浪費這個時間 05/20 13:25
※ 編輯: adrianc (220.134.109.209), 05/20/2014 13:51:37
6F:推 GoalBased:感覺是教義派和情境派的認知出入 05/20 14:04
7F:推 KanoLoa:推 05/23 00:19
8F:推 Abbee:推,我幾天前一句話就讓版上熱鬧起來,真令人感動 06/07 09:11







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP