未密封类

注释

此内容由 Pearson Education, Inc. 的许可从 框架设计指南:可重用 .NET 库的约定、习惯和模式(第 2 版)重新打印。 该版于2008年出版,此后该书已于 第三版全面修订。 此页上的一些信息可能已过期。

密封类不能被继承,而且会防止扩展。 相比之下,可从其继承的类称为非密封类。

✔️ 考虑使用没有额外虚拟成员或受保护成员的非封闭类,作为一种为框架提供既经济又受欢迎的可扩展性的方法。

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

默认情况下,类在大多数编程语言中是未密封的,对于框架中的大多数类,这也是建议的默认值。 由于与未密封类型相关的测试成本相对较低,因此框架用户非常赞赏未密封类型提供的扩展性,而且非常便宜。

部分内容 © 2005, 2009 Microsoft 公司。 保留所有权利。

获得皮尔逊教育公司许可后重印自 框架设计准则:可重用 .NET 库的约定、习惯和模式 ,由 Krzysztof Cwalina 和 Brad Abrams 编写,并作为微软 Windows 开发系列中的出版物之一,于 2008 年 10 月 22 日由 Addison-Wesley Professional 出版。

另请参阅