Инъекция зависимости, кажется, хорошая вещь. Вообще, должны ли зависимости быть внедрены в методы, которые требуют их, или они должны быть вставлены в конструктор класса?
См. Примеры ниже, чтобы продемонстрировать два способа внедрения одной и той же зависимости.
//Inject the dependency into the methods that require ImportantClass
Class Something {
public Something()
{
//empty
}
public void A()
{
//do something without x
}
public void B(ImportantClass x)
{
//do something with x
}
public void C(ImportantClass x)
{
//do something with x
}
}
//Inject the dependency into the constructor once
Class Something {
private ImportantClass _x
public Something(ImportantClass x)
{
this._x = x;
}
public void A()
{
//do something without x
}
public void B()
{
//do something with this._x
}
public void C()
{
//do something with this._x
}
}