Vedi il codice qui sotto:
public List<DenominationDTO> CalculateChange(
decimal cost,
decimal paymentReceived,
string currencySymbol)
{
var currency = CurrencyFactory.Create(currencySymbol);
var denomination = DenominationFactory.Create(0,0);
DenominationsCalculator = DenominationsCalculatorFactory.Create(
currency,
denomination,
cost,
paymentReceived);
return Mapper.Map<List<DenominationDTO>>(
DenominationsCalculator.GetDenominations().ToList());
}
DenominationFactory è usato per creare un'istanza di una classe di valore immutabile. Le classi immutabili non dovrebbero avere un costruttore di argomenti zero basato su ciò che ho letto. Se potessero avere un costruttore con valore singolo, potrei semplicemente iniettare la classe creata da DenominationFactory nel costruttore della classe che contiene CalculateChange.
Una classe immutabile può avere un costruttore di argomenti zero? Secondo questo link non dovrebbe: link
Sto parlando rigorosamente da una prospettiva di buone pratiche usando DDD e un modello di dominio ricco.