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/cn.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灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP