所以,我想继承一个sealed class
在CSHARP,结果被烧毁。除非您有权访问源,否则无法解封。
然后,我想到了“为什么sealed
甚至存在?”。4个月前。尽管阅读了很多有关内容的文章,但我还是不知道,例如:
- 乔恩·斯凯特(Jon Skeet)的愿望是:“ 类在.NET中默认为封闭的。 ”
- 比继承更偏爱组成?
- “您不应该密封所有课程(...)”
- 您如何模拟密封课程?
从那以后我一直试图消化所有这些,但是对我来说太过分了。最终,昨天我再次尝试了。我再次扫描了所有这些文件,还有更多:
- 为什么一个班级应该不是“抽象”或“最终/密封”之外的任何东西?
- 在超过15年的编程时间中,我第一次听说SOLID时,是从已经链接的问题的答案中得出的,显然我四个月前都没有读过它
最后,经过深思熟虑,我决定根据新标题对原始问题进行大量编辑。
在老问题过于宽泛和主观的。基本上是在问:
- 旧标题中:使用密封的一个很好的理由
- 在正文中:如何正确修改密封类?忘记继承?使用成分?
但是现在,理解(我昨天没做过)所有事情sealed
都在阻止继承,我们可以并且确实应该在继承上使用组合,我意识到我需要的是实际示例。
我想我的问题是(实际上一直都是)Mindor先生在聊天中向我提出的建议:继承设计如何导致额外的成本?