Хм, я не вижу, в чем разница между предварительной фиксацией с помощью 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
{
}

Ответы на вопрос(12)

Ваш ответ на вопрос