Vedi il codice qui sotto:
public IEnumerable<DenominationNumberRequired> CalculateDenominationsFor(int cost)
{
var target = cost;
foreach (var denomination in currency.AvailableDenominations.OrderByDescending(a => a))
{
var numberRequired = target / denomination;
if (numberRequired > 0)
{
yield return new DenominationNumberRequired(denomination, numberRequired);
}
target = target - (numberRequired * denomination);
}
}
Si noti che questo oggetto dominio è responsabile della creazione degli oggetti DenominationNumberRequired anche se non è una fabbrica. Devo iniettare una fabbrica in questa entità per creare gli oggetti DenominationNumberRequired? Ciò sembra suggerire che non dovrei: link . Tuttavia, allo stesso modo; un oggetto dominio che crea altri oggetti di dominio non sembra giusto a causa del principio di responsabilità singola.