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