ООП - недопустимое имя класса по умолчанию?

Я реализую шаблонный тип шаблона и у меня есть несколько классов для реализации поведения.

В качестве примера моя структура выглядит следующим образом:

TemplateAbstract
    Type 
        CustomType1
        CustomType2
        CustomType3
        Default

Класс "Default" содержит поведение, если ни один из пользовательских типов не требуется. Мой вопрос, является ли "Default" плохим именем для класса?

Я предполагаю, что, поскольку я задаю этот вопрос, у меня уже есть некоторые серьезные сомнения относительно имени, но что еще вы бы назвали классом, который обеспечивает поведение по умолчанию среди типов?

3 ответа

Решение

Ради примера, ты имеешь в виду что-то подобное?

Number
  Integer
    PositiveInteger
    NegativeInteger
    OddInteger
    EvenInteger

Как отметил Том Б в своем комментарии, то, как вы подходите к этому, зависит от состава или наследования; но я предполагаю, что, учитывая эту структуру, которую вы выложили, вы хотите использовать наследование. В моем примере использование типа DefaultInteger кажется довольно неудобным для использования, но в вашей конкретной проблеме это может быть не так. И если Integer это просто интерфейс StandardInteger может иметь смысл. Подумайте о том, как разработчик будет использовать этот тип, и имеет ли значение "По умолчанию" как отдельную вещь:

Bread
  YeastLeavened
    Wheat
    TwelveGrain
    Default

Теперь я не уверен, каким будет дрожжевой дрожжевой хлеб по умолчанию, но если он полезен для вашей программы выпечки, то в этом нет ничего "неправильного". Хотя лично я предпочитаю не иметь Default как его собственный тип и вместо этого просто есть метод на YeastLeavened.getDefault() вернуть правильный.

Редактировать: Так что, чтобы ответить на ваш вопрос напрямую, в общем, да, я бы сказал, что "Default" - это плохое имя, если вы не всегда используете его через область видимости (Integer::Default), и, в общем, это сложный класс для самостоятельного использования. концептуально (это либо абстрактная базовая функциональность, либо какой-то конкретный, "реальный" класс, функционирующий как используемый по умолчанию в системе)

Просто расшифруйте имя, назовите его:

DefaultTypeBehaviour

Это маловероятно, чтобы вызвать конфликт, и рассказать вам немного больше о том, что делает класс.

В идеале имя класса должно описывать цель. "По умолчанию" является расплывчатым термином и не имеет никакого значения для функциональности, предоставляемой классом.

Вы можете назвать свой класс Default как-то, что говорит о том, что "в этом классе реализованы все основные функции"

Например, вы можете указать имя типа "BaseType" или "BasicType" или "SimpleType" или что-то еще, соответствующее вашим потребностям.

Другие вопросы по тегам