Myślę, że moje zrozumienie fasoli szparagowej jest nieco opóźnione.Czy jest korzystne utworzenie komponentu Spring bean, gdy mogę uzyskać dostęp do jedynej statycznej metody bezpośrednio z nazwą klasy
Pracowałem nad moim projektem i myślałem o tej sytuacji.
Say mam klasa Foo
class Foo(){
public void doSomething(Object a , Object b){ // input parameters does not matter actually.
//do something
}
}
Jeśli używam tej klasy w innej klasie, takich jak:
class Scheduler{
....
@Autowired
private Foo foo;
someMethod(){
foo.doSomeThind(a,b);
}
....
}
w powyższym przypadku Zamiast autowiring Foo
mogę zrobić doSomeThing
statyczne i bezpośrednio używałam Foo.doSomeThing(a,b)
Zastanawiam się, czy nie ma żadnej korzyści z tworzenia fasoli, czy też jest jakaś wada użycia takich statycznych metod?
Jeśli są one takie same, Kiedy powinienem wybrać fasolę szparaganą i kiedy powinienem zrobić to po prostu używając metody statycznej?
Jeśli 'Foo' nie ma żadnego stanu i zawiera tylko" statyczne "metody, jest to bardziej klasa użytkowa. Nie ma sensu tworzyć fasoli 'Spring', ponieważ nie można tak naprawdę zamienić implementacji, jeśli' class' ma tylko 'static' metody. – CKing