Если у меня есть класс, который требует зависимости через его конструктор:
public MyClass( IDependencyInterface dependency )
и зависимость использует фабрику / конструктор (меня все еще смущает различие между ними) для установки его параметров:
IDependencyInterface dependency = dependencyFactory
.ChangeSomeParameter(someValue)
.ChangeSomeOtherParameter(someOtherValue)
.Build();
Как создать фабрику для MyClass, не передавая другие фабрики для создания необходимых зависимостей?
public MyClassFactory
{
private SomeParam _someParam;
private IDependencyFactory _dependencyFactory;
public myClassFactory( IDependencyFactory dependencyFactory)
{
_dependencyFactory = dependencyFactory;
}
public ImyClassFactory ChangeSomeParameter(someParam)
{
_someParam = someParam;
}
public IMyClass Build()
{
Dependency dependency = _dependencyFactory
.ChangeSomeParameter( _SomeParam )
.Build();
return MyClass(dependency);
}
}
Как мне избежать необходимости передавать фабрики зависимостей, необходимых для создания «MyClass» при создании MyClassFactory? Или правильно, что вам нужно передавать фабрики каждой зависимости в фабрику для класса с зависимостями?
P.S. Я планирую сделать фабрики синглетонами, которые создаются во время выполнения и передаются. Также я новичок в Dependency Injection. Пожалуйста, дайте мне знать, если есть лучший способ использовать фабрики с интерфейсами.