Я отчетливо помню, что в свое время директива, выдвинутая Microsoft, заключалась в том, чтобы добавить суффикс "Base" к абстрактному классу, чтобы исключить тот факт, что он был абстрактным. Следовательно, мы имеем классы типа System.Web.Hosting.VirtualFileBase
, System.Configuration.ConfigurationValidatorBase
, System.Windows.Forms.ButtonBase
и, конечно, System.Collections.CollectionBase
.
Но я заметил, что в последнее время многие абстрактные классы в Framework, похоже, не следуют этому соглашению. Например, следующие классы являются абстрактными, но не следуют этому соглашению:
-
System.DirectoryServices.ActiveDirectory.DirectoryServer
-
System.Configuration.ConfigurationElement
-
System.Drawing.Brush
-
System.Windows.Forms.CommonDialog
И это просто то, что я мог занять несколько секунд. Поэтому я пошел посмотреть, что должно было сказать официальная документация, чтобы убедиться, что я не сумасшедший. Я нашел Имена классов, структур и интерфейсов на MSDN по адресу Рекомендации по дизайну для разработки библиотек классов. Как ни странно, я не могу найти упоминания о директиве, чтобы добавить "Base" в конец абстрактного имени класса. И рекомендации больше не доступны для версии 1.1 Framework.
Итак, я теряю его? Было ли это руководство когда-либо существовать? Он просто был оставлен без единого слова? Разве я создавал длинные имена классов в течение последних двух лет?
Кто-то бросит мне кость здесь.
Обновление Я не сумасшедший. Данное руководство существует. Krzysztof Cwalina об этом говорит в 2005 году.