Сейчас у меня есть большое количество постоянных строк и перечислений в моем проекте. С самого начала я использовал следующий подход (пример кода pseudo php):
class Constants implements iStatuses, iEmailTypes {
}
interface iStatuses {
const STATUS_NEW = 1;
cosnt STATUS_UPDATED =2;
...
}
interface iEmailTypes {
const EMAIL_TYPE_NEW = 1;
const EMAIL_TYPE_UPDATED =2;
...
}
Этот подход позволил мне получить мои константы следующим образом в любом месте кода, так как я включил класс констант в index.php.
$this->sendEmailByType(CONSTANTS::EMAIL_TYPE_NEW);
Однако я могу полностью увидеть недостатки подхода:
- Класс констант перегружен множеством перечислений и констант, и очень сложно получить правильную константу. Соглашение об именах помогает решить проблему, но мне это не нравится, поскольку для определения того, что мне нужно, требуется дополнительное мышление.
- Класс констант слишком велик и запутан.
- Мне нужно отслеживать все интерфейсы, реализуемые классом Cosntants.
Так как мой проект становится намного больше, и нам нужно объединить его с другим кодом проекта, требуется изменить подход класса Constants. Однако у меня слишком много зависимостей, основанных на этом классе. Как мне переструктурировать этот подход, чтобы не сломать старый код, который использовал значения класса констант.
Пожалуйста, поделитесь своими мыслями и предложениями, как улучшить мой подход "константы" или подтвердить, что он прилично хорош, и я должен его поддерживать.
Спасибо заранее.