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