Notre architecte a parlé de l'utilisation de techniques SOA dans toute notre base de code, même sur des interfaces qui ne sont pas réellement hébergées en tant que service. L'une de ses demandes est que nous concevions nos méthodes d'interface de sorte que nous ne fassions aucune hypothèse sur l'implémentation réelle. Donc, si nous avons une méthode qui accepte un objet et qui a besoin de mettre à jour une propriété sur cet objet, nous devons explicitement renvoyer l'objet de la méthode. Sinon, nous nous appuierions sur le fait que Quelque chose est un type de référence et C# nous permet de mettre à jour les propriétés sur un type de référence par défaut.Utilisation des principes SOA sur OOD dans le code non-service
Alors:
public void SaveSomething(Something something)
{
//save to database
something.SomethingID = 42;
}
devient:
public Something SaveSomething(Something something)
{
//save to database
return new Something
{
//all properties here including new primary key from db
};
}
Je ne peux pas vraiment obtenir ma tête autour des avantages de cette approche et je me demandais si quelqu'un pouvait aider?
Est-ce une approche courante?