Nuestro arquitecto ha hablado sobre el uso de técnicas de SOA a través de nuestra base de código, incluso en interfaces que no estén alojados en realidad como un servicio. Una de sus peticiones es que diseñemos nuestros métodos de interfaz para que no hagamos suposiciones sobre la implementación real. Entonces, si tenemos un método que toma un objeto y necesita actualizar una propiedad en ese objeto, explícitamente necesitamos devolver el objeto del método. De lo contrario, nos basaríamos en el hecho de que Algo es un tipo de referencia y C# nos permite actualizar las propiedades en un tipo de referencia por defecto.utilizando los principios de SOA más OOD en el código de servicio no
Así:
public void SaveSomething(Something something)
{
//save to database
something.SomethingID = 42;
}
se convierte en:
public Something SaveSomething(Something something)
{
//save to database
return new Something
{
//all properties here including new primary key from db
};
}
realmente no puedo conseguir mi cabeza alrededor de los beneficios de este enfoque y se preguntaba si alguien podría ayudar?
¿Es este un enfoque común?