Можно ли использовать слово Base в имени класса, которое является дном дерева наследования?
Я всегда находил, что это немного покончил, просто интересно, согласен ли кто-нибудь со мной.
Например, если я реорганизую некоторые элементы из MyClassA и MyClassB в общий базовый класс, у меня возникнет соблазн создать MyBaseClass, из которого они наследуют.
Но что произойдет, если мне когда-нибудь понадобится рефакторинг MyBaseClass? MyBaseBaseClass? Теперь это просто глупо.
Я знаю, что Rocky Lhotka не возражает против своей структуры CSLA, но я всегда беспокоюсь о "определенных" в программировании.
Мысли?
Позвольте мне пояснить, почему я даже беспокоюсь об этом.
У меня есть два пространства имен - MySpecificNamespace и MyCommonNamespace. MyNamespace использует MyCommonNamespace, как и следовало ожидать.
Теперь мне нравится максимально использовать пространство имен везде, где это возможно, чтобы описать контекст проблемы и не добавлять контекст к имени класса. Так, например, подумайте, что у меня есть класс в MyNamespace, который спускается из одного в MyCommonNamespace.
Вариант A
Я мог бы назвать это
MySpecificClass: MyClass
{
}
Но затем я добавляю "Специфический" (контекст) к имени, который является избыточным, как и в MySpecificNamespace.
Вариант B
MyClass: MyCommonNamespace.MyClass
{
}
Вы можете видеть, как мы могли бы запутаться здесь, верно?
Вариант C
Тот, который я считаю подозрительным:
MyClass: MyBaseClass
{
}