Unser Architekt hat über die Verwendung von SOA-Techniken in unserer gesamten Codebasis gesprochen, sogar auf Schnittstellen, die nicht tatsächlich als Service gehostet werden. Eine seiner Forderungen ist, dass wir unsere Schnittstellenmethoden so gestalten, dass wir keine Annahmen über die tatsächliche Implementierung machen. Wenn wir also eine Methode haben, die ein Objekt aufnimmt und eine Eigenschaft für dieses Objekt aktualisieren muss, müssen wir das Objekt explizit von der Methode zurückgeben. Andernfalls würden wir uns darauf verlassen, dass Something ein Referenztyp ist und C# uns erlaubt, Eigenschaften für einen Referenztyp standardmäßig zu aktualisieren.Verwendung von SOA-Prinzipien über OOD in Nicht-Service-Code
So:
public void SaveSomething(Something something)
{
//save to database
something.SomethingID = 42;
}
wird:
public Something SaveSomething(Something something)
{
//save to database
return new Something
{
//all properties here including new primary key from db
};
}
Ich kann nicht wirklich meinen Kopf um die Vorteile dieses Ansatzes und wunderte mich, wenn jemand helfen könnte?
Ist dies ein allgemeiner Ansatz?