Tworzę menedżera błędów dla interfejsu API, nad którym pracuję. Chodzi o to, że zapewnia on pojedynczy zbiór kodów błędów, które można zwrócić z interfejsu API, zapewniając, że ten sam błąd w różnych połączeniach jest obsługiwany w ten sam sposób (np. Wymagana wartość brakuje w żądaniu).Unikanie magicznych liczb bez tworzenia zależności
Moje pierwsze podejście było wzdłuż linii:
$this->_errorManager->setError(ErrorCodes::REQUIRED_FIELD);
Jednak to stwarza zależność od klasy kodów błędów gdziekolwiek chcę ustawić błąd.
Alternatywą jest:
$this->_errorManager->setError(100);
Ale teraz mam kilka siedzi w środku mojego kodu, który nic nie znaczy.
Chociaż mogę myśleć o rozwiązaniach do tego konkretnego problemu nie będzie innych sytuacjach, gdzie będę chciał użyć „” enum i nie mogę wymyślić rozwiązanie, które nie robi ciasno kilka klas.
Czy jest lepszy sposób na zrobienie tego lub inne podejście, które mogę podjąć, aby usunąć magiczne liczby? Czy jest to ścisłe połączenie, które muszę zaakceptować i rozważyć indywidualnie dla każdego przypadku?
Nie nazwałbym tego "sprzężeniem", ponieważ "ErrorCodes" nie ma żadnego * zachowania *. To dobra praktyka i zdecydowanie nie zasługuje na negatywne konotacje tego terminu. Możesz pomyśleć o tym, że jest to "jedna jednostka logiczna zaimplementowana jako dwie klasy fizyczne", a nie "dwie logiczne jednostki połączone ze sobą". – Jon