Мне интересно узнать, подходит ли следующий сценарий для инъекции зависимостей. Пример немного составлен и может не быть хорошим дизайном OO. Пожалуйста, медведь со мной и сосредоточиться на той части, которая относится к вопросу:Инъекция зависимостей - определение аргументов во время выполнения
Допустим, у меня есть следующие классы:
class BankAccount
{
User user;
Integer accountNo;
BankAccount(User user, Integer accountNo){
....
}
}
class User
{
String firstName, lastName;
User(String firstName, String lastName)
{
....
}
}
Допустим, я должен создать объекты в следующем сценарии:
void withoutDependecyInjectionUsingNewOperator()
{
User user = new User("Lance", "Armstrong");
// These values are determined
// based on form input on UI
BankAccount account = new BankAccount(user, 1233);
}
Я познакомился с такими каркасами, как Guice или Spring, которые поддерживают DI. Если бы я использовал какую-либо из этих фреймворков, должен ли я менять указанную выше функцию на использование DI?
Основываясь на примерах, которые я видел до сих пор в учебниках, кажется, что это в основном полезно когда аргументы конструктора могут быть решены в конфигурации, а не для тех случаев, когда значения в конечном счете, на основе пользовательского ввода?
Спасибо!
Связанные: http://stackoverflow.com/questions/4835046/why-not-use-an-ioc-container-to-resolve-dependencies-for-entities-business-objec/4836790#4836790 –