Vedi il codice qui sotto:
public class Calculator
{
private readonly int Number1;
private readonly int Number2;
private readonly int Answer;
public Calculator(int _Number1, int _Number2)
{
Number1 = _Number1;
Number2 = _Number2;
Add();
}
public void Add()
{
Answer = Number1 + Number2;
}
}
Il codice sopra errori come previsto perché sto cercando di inizializzare un campo di sola lettura al di fuori del costruttore. Mi rendo conto che l'unica riga di codice in "Aggiungi" potrebbe essere spostata nel costruttore per farlo funzionare. Tuttavia, aggiungere Add è stata una funzione molto complessa.
Q1) La classe Calculator dovrebbe essere immutabile? Q2) Se la risposta a Q1 è 'Sì', allora tutto il codice per la funzione 'Aggiungi' va nel costruttore (facendolo sembrare un disastro - assumendo che 'Aggiungi' abbia più di 1 riga di codice - diciamo che ha 30 righe di codice).
Sto parlando rigorosamente da una prospettiva DDD (best practice). Mi rendo conto che posso spostare solo una riga di codice dal metodo Add al costruttore in questo caso.