Attualmente sto cercando di ridefinire un grafico di oggetti piuttosto complicato per usare l'iniezione di dipendenza. Sto usando C # e StructureMap, ma il problema non è realmente specifico della tecnologia. Capisco il principio di base, ma non vedo come risolvere una dipendenza come questa:
public class Food
{
public Food(IIngredient ingredient)
{
this.foodProcessor = new FoodProcessor(this);
}
// ... Lots of things to customize food
public void BuildFood()
{
this.foodProcessor.Process();
}
}
public class FoodProcessor
{
public FoodProcessor(Food f)
{
this.food = f;
}
public void Process(){
// yummy
}
}
In tal caso, un FoodProcessor
da solo non ha senso. Non riesco a elaborare null
o cibo vuoto. D'altra parte, new
nei vettori non è buono (giusto?), E dovrebbe essere iniettato come dipendenza.
In questo caso, la new
è ok o è possibile effettuare il refactoring senza major modifiche alla mia applicazione?