未密封类

注意

此内容根据 Pearson Education, Inc. 许可转载自《框架设计指南:可重用 .NET 库的约定、习语和模式第二版》。 该版本于 2008 年出版,并在此后于第三版对该书进行了全面修订。 此页上的一些信息可能已过时。

不能从密封类继承,密封类阻止了扩展性。 相比之下,可从其继承的类称为非密封类。

✔️ 请考虑使用未添加虚拟成员或受保护成员的非密封类,这是向框架提供廉价但非常受欢迎的扩展性的好方法。

开发人员通常希望从非密封类继承,以便添加便捷成员,如自定义构造函数、新方法或方法重载。 例如,System.Messaging.MessageQueue 是非密封的,因此允许用户创建默认为特定队列路径的自定义队列,或者添加自定义方法来简化特定场景的 API。

在大多数编程语言中,类是默认不密封的,这也是框架中对大多数类的推荐默认设置。 非密封类型提供的扩展性很受框架用户的欢迎,并且由于与非密封类型相关联的测试成本相对较低,因此提供这种扩展性相当便宜。

Portions © 2005, 2009 Microsoft Corporation 版权所有。 保留所有权利。

在 Pearson Education, Inc. 授权下,由 Addison-Wesley Professional 作为 Microsoft Windows 开发系列的一部分再版自 Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition(Framework 设计准则:可重用 .NET 库的约定、惯例和模式第 2 版),由 Krzysztof Cwalina 和 Brad Abrams 发布于 2008 年 10 月 22 日。

请参阅