Я создаю диспетчер ошибок для API, над которым я работаю. Идея состоит в том, что он обеспечивает единый запас кодов ошибок, которые могут быть возвращены из API, гарантируя, что одна и та же ошибка в разных вызовах обрабатывается одинаково (например, требуемое значение отсутствует в запросе).Избегание магических чисел без создания зависимостей
Мой первоначальный подход вдоль линий:
$this->_errorManager->setError(ErrorCodes::REQUIRED_FIELD);
Однако это создает зависимость от класса кодов ошибок в любом месте я хочу, чтобы установить ошибку.
Альтернатива:
$this->_errorManager->setError(100);
Но теперь у меня есть ряд, сидя в середине моего кода, который ничего не значит.
Хотя я могу придумать решения этой конкретной проблемы, будут ситуации, когда я захочу использовать «enum», и я не могу придумать решение, которое не плотно связывает классы.
Есть ли лучший способ сделать это или другой подход, который я могу предпринять, чтобы удалить магические числа? Или это тесная связь, которую я просто должен принять и рассмотреть в каждом конкретном случае?
Я бы не назвал эту «связь», так как «ErrorCodes» не имеет никакого поведения *. Это хорошая практика, и определенно не заслуживает негативного коннотации термина. Возможно, вам стоит подумать об этом как о «одном логическом объекте, реализованном как два физических класса», а не как о «соединении двух логических сущностей». – Jon