Я разработчик Java, который начинает , чтобы понять всю мощь инъекций зависимостей, и меня внезапно осенило, что нет способа внедрить статический метод.Таким образом, это заставило меня задуматься: являются ли статические методы анти-паттернами DI?
Что еще важнее: если я собираюсь принять внедрение зависимостей, означает ли это, что мне нужно прекратить кодировать статические методы?Я спрашиваю, потому что нет способа издеваться над ними и вводить имитирующую статику во время юнит-тестов, что является для меня огромным отключением.
Edit : я знаю, что это обычный способ "wrap "и внедрить существующий статический метод выглядит так:
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.
Кроме того, я вижу много похожих вопросов, связанных с этим, но не могу найти точное соответствие, котороезадал этот же вопрос.Если вы видите, что это действительно обман другого вопроса, пожалуйста, укажите мне, и я сам закрою этот вопрос (пожалуйста, не закрывайте его!).