作者aoksc (重出江湖)
看板C_Sharp
标题[问题] 继承的缺点
时间Fri Jun 7 11:10:10 2019
请问各位
在跟同事说明少把工具方法直接写在基础类别
因为这样会让全部继承的类别都拥有这方法
但这些方法又只有一两个地方用到
有同事故意challenge说
写在父类别又怎样
没用到就没用到阿!
我也只能反击说这会让整个程式码很杂乱
不过也的确就不要呼叫就好
不考虑到DI的问题我的反击论点的确是很薄弱
请问有什麽更强力的观点可以反击继承方法没用到没差
所以可以把方法都写在父类别中的谬论
-----
Sent from JPTT on my HTC_U-3u.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.74.83.10 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1559877016.A.E1D.html
1F:→ annies5: 并不是要不要放在父类别,而是这个方法是不是「该」放在06/07 11:28
2F:→ annies5: 这里06/07 11:28
对啦
我们是在讨论适合不适合
我是认为只有有一两个地方在用的方法不适合写在父类别
※ 编辑: aoksc (42.74.83.10 台湾), 06/07/2019 11:41:58
3F:→ t64141: 重点是这个方法是不是属於这个类别内的功能,不是使用次数 06/07 13:36
4F:推 jizang: 继承可以有多层,或者可以考虑实作界面。 06/07 19:21
5F:→ ssccg: 重点是这个方法是不是属於这个类别内的功能,还有这个方法 06/07 20:19
6F:→ ssccg: 的存取权限该设成什麽,你只提工具方法、一两个地方实在没 06/07 20:20
7F:→ ssccg: 办法具体讨论适不适合 06/07 20:20
8F:→ ssccg: 那一两个地方到底是哪一两个地方,那方法到底是在干麻 06/07 20:21
9F:→ CloudyWing: 是否可以举个例子,我觉得重点不在是否只有一两个地方 06/07 20:45
10F:→ CloudyWing: 使用,而是这个method和父类别或子类别哪个相关性高 06/07 20:46
11F:→ forewero: 我觉得这种Helper Function就用组合去做吧,用继承可以 06/07 23:43
12F:→ forewero: ,但是当子类别也要用这个method,而且略有不同时该怎办 06/07 23:44
13F:→ forewero: ?很容易就暴走了 06/07 23:44
14F:→ forewero: 而且後续维护的人会起笑 06/07 23:45
15F:推 Randy1230: 继承 会使类别复杂 ,个人认为。看程式的需求以及维护 06/08 08:52
16F:→ Randy1230: 方式 06/08 08:52
17F:推 Litfal: 都不在乎,叫他回去写函数导向就好了啊 06/08 12:43
18F:→ Litfal: 你不是主管也不是客户,提点一下就好,他坚持就让他坚持吧 06/08 12:45
19F:→ feeya: 可以考虑用static 来分类阿 06/10 11:57
20F:→ testPtt: 我想到wpf的attached property 完全不用改到原来的类别 06/10 21:29
21F:推 Nilife: 问他有没有听过可读性 06/11 17:41
22F:嘘 cia1099: c#的继承不是只能有一层?没什麽杂乱或c++的层层叠在一起 06/12 23:53
23F:→ cia1099: 吧 06/12 23:53
24F:→ t64141: C# 是不能多重继承, 不是继承只能有一层 06/13 00:28
25F:→ vi000246: 可以举喷射机继承鸟类类别的例子 06/13 00:37
26F:→ vi000246: 鸟类会飞、会叫 结果弄个飞机继承它 整个逻辑都错乱了 06/13 00:37
27F:→ vi000246: 为了一时的方便这样搞 只会让系统越来越难维护 06/13 00:38
28F:→ vi000246: 不过有些人的心态是会动就好.. 你不是主管就随他去吧 06/13 00:39
29F:推 vi000246: 你可以google 里氏替换原则 06/13 00:40
30F:→ testPtt: 只要鸟类没有吃东西大便等多余的功能 飞机继承它是ok的 06/14 08:31