Me encontré con el siguiente fragmento de código durante una revisión del código.Devolviendo un nuevo objeto vs modificando uno pasado como un parámetro
Mi intuición me dice que esto no está siguiendo el OOP correcto.
Estoy pensando que, en cambio, el método LoadObject debería devolver un nuevo objeto SomeObject, en lugar de modificar el que se pasó a él. Aunque realmente no puedo encontrar una explicación adecuada de por qué esto es mejor.
¿Mi solución es mejor? y si es así ¿por qué? específicamente, ¿qué principios o estándares de OOP se rompen en el ejemplo de código dado (si corresponde)?
public void someMethod()
{
...
var someObject = new SomeObject();
LoadSomeObject(reader,someObject);
}
private void LoadSomeObject(SqlDataReader reader, SomeObject someObject)
{
someObject.Id = reader.GetGuid(0);
}
Parece que también estás mutando 'SqlDataReader'. –