Я разработчик Java, который начинает понимать всю мощь инъекций зависимостей, и мне внезапно стало ясно, что нет способа вводить статический метод. Так это заставило меня задуматься: статические методы DI анти-шаблоны?
Что еще более важно: если бы я хотел принять инъекцию зависимостей, значит ли это, что мне нужно прекратить кодирование статических методов? Я спрашиваю, потому что нет способа издеваться над ними и вводить макет статики во время модульных тестов, что для меня огромная очередь.
Изменить: я знаю, что общий способ "обернуть" и ввести существующий статический метод выглядит так:
public class Foo {
public static void bar() { ... }
}
public interface FooWrapper {
public void bar();
}
public class FooWrapperImpl implements FooWrapper {
public void bar() {
return Foo.bar();
}
}
... но я не спрашиваю, как вводить существующий статический метод... Я прошу, чтобы я прекратил писать их вообще, если весь мой код (с этого момента вперед) будет охватывать понятие DI.
Кроме того, я вижу много аналогичных вопросов к этому, но не смог найти точного соответствия, которое задало этот же вопрос. Если вы видите, что это действительно обманывает другой вопрос, пожалуйста, укажите его мне, и я сам закрою этот вопрос (пожалуйста, не просто закрывайте его!).