Ho trovato il seguente pezzo di codice durante una revisione del codice.Restituzione di un nuovo oggetto rispetto alla modifica di uno passato come parametro
Il mio intuito mi sta dicendo che questo non sta seguendo l'OOP corretto.
Sto pensando che invece il metodo LoadObject dovrebbe restituire un nuovo oggetto SomeObject, invece di modificare quello passato in esso. Anche se non riesco a trovare una spiegazione adeguata del perché è meglio.
La mia soluzione è migliore? e se sì perché? in particolare quali principi o standard OOP sono infranti nell'esempio di codice fornito (se esiste)?
public void someMethod()
{
...
var someObject = new SomeObject();
LoadSomeObject(reader,someObject);
}
private void LoadSomeObject(SqlDataReader reader, SomeObject someObject)
{
someObject.Id = reader.GetGuid(0);
}
Sembra che tu possa anche cambiare "SqlDataReader'. –