Когда применение статических методов оправдано?

Нужны ли статические методы? Когда их применение оправдано?

Статические методы и глобальные функции уместны только если это чистые функции (детерминированные без побочных эффектов).

То есть функции, которые просто что-то однообразно считают или создают, а не лезут сами или через синглтоны в глобалы, конфиги, файлы, сокеты или БД.

как подменять сервис в контейнере?

Чистые функции нет смысла подменять в контейнере внедрения зависимостей.

допустим, вызов должен быть залогирован, что тогда?

Тогда уже инъектим эту функцию в конструктор или метод как callable или invoke/interface и декорируем.

Источник

Дмитрий Елисеев
elisdn.ru
Комментарии (0)
Зарегистрируйтесь или войдите чтобы оставить комментарий

Или войти через:

Google
GitHub
Yandex
MailRu