我清楚地记得,曾经,微软推行的指导方针是在抽象类中添加“Base”后缀,以消除它是抽象的事实。因此,我们有诸如 System.Web.Hosting.VirtualFileBase 、 System.Configuration.ConfigurationValidatorBase 、 System.Windows.Forms.ButtonBase 等类当然,System.Collections.CollectionBase
。
但我注意到,最近框架中的许多抽象类似乎没有遵循这个约定。例如,以下类都是抽象类,但不遵循此约定:
System.DirectoryServices.ActiveDirectory.DirectoryServer
System.Configuration.ConfigurationElement
System.Drawing.Brush
System.Windows.Forms.CommonDialog
这就是我在几秒钟内就能鼓动的内容。所以我去查找官方文档的内容,以确保我没有疯。我找到了Names of Classes, Structs, and Interfaces在 MSDN 上:Design Guidelines for Developing Class Libraries 。奇怪的是,我找不到任何提及在抽象类名称末尾添加“Base”的指南。该指南不再适用于框架 1.1 版本。
那么,我会失去它吗?这个指导方针曾经存在过吗?难道就这样一声不吭地被抛弃了吗?过去两年我自己创建长类名是否毫无意义?
有人在这里扔了我一根骨头。
更新 我没疯。指导方针是存在的。 Krzysztof Cwalina gripes about it in 2005.
最佳答案
在 Framework Design Guidelines第 174 页指出:
Avoid naming base classes with a "Base" suffix if the class is intended for use in public APIs.
另外:http://blogs.msdn.com/kcwalina/archive/2005/12/16/BaseSuffix.aspx
关于.net - 抽象类的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/429470/