我想听听 .Net 框架中大量密封类背后的动机是什么。密封一个类有什么好处?我无法理解不允许继承如何有用,而且很可能不是唯一一个与这些类作斗争的人。
那么,为什么框架要这样设计,难道这不是一个突破性的改变来揭开一切吗?除了邪恶之外,一定还有其他原因吧?
类应该被设计为继承或禁止继承。设计继承是有成本的:
- 它可以确定您的实现(您必须声明哪些方法将调用哪些其他方法,以防用户覆盖其中一个而不是另一个)
- 它揭示了您的实施而不仅仅是效果
- 这意味着你在设计的时候要考虑更多的可能性
- 像 Equals 这样的东西很难在继承树中设计
- 需要更多文档
- 子类化的不可变类型可能会变得可变(ick)
《Effective Java》的第 17 条对此进行了更多详细介绍 - 不管它是在 Java 上下文中编写的,该建议也适用于 .NET。
就我个人而言,我希望类在 .NET 中默认被密封。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)