Возможно глупый совет, но мне помогает обычно следующее.
Если у меня есть, к примеру Repository и Service и у меня ответ из репозитория обрабатывается методами сервиса, при этом сервис больше нигде не используется, то
1) Создаю новый интерфейс. Например FiltrationDataServiceInterface и передаю его в раздувшийся конструктор вместо этих двух классов.
2) В реализации интерфейса уже использую их для какого-то одного метода.
3) Этот метод использую в изначальном классе, зависимости, которого я хотел уменьшить.
Так можно объединять несколько сервисов в один и уменьшать количество зависимостей у раздувшегося класса.
Логгер я бы за зависимость не считал, так как он вполне самодостаточен и в сущности не является частью вашей логики. То есть если у меня 4-5 зависимостей, и при этом одна из них логгер, то это не сильно страшно. Но тут, конечно тема для холивара может развернуться, поэтому, это просто мое мнение.