Nasz architekt mówił o użyciu technik SOA w całym naszym kodzie źródłowym, nawet w interfejsach, które w rzeczywistości nie są hostowane jako usługa. Jedną z jego próśb jest to, że projektujemy nasze metody interfejsu, abyśmy nie mieli żadnych założeń co do faktycznej implementacji. Jeśli więc mamy metodę, która przyjmuje obiekt i wymaga aktualizacji właściwości tego obiektu, musimy wyraźnie zwrócić obiekt z tej metody. W przeciwnym wypadku polegalibyśmy na tym, że coś jest typem referencyjnym, a C# pozwala nam domyślnie aktualizować właściwości na typie referencyjnym.Korzystanie z zasad SOA zamiast OOD w kodzie nienależącym do usługi
Więc:
public void SaveSomething(Something something)
{
//save to database
something.SomethingID = 42;
}
staje:
public Something SaveSomething(Something something)
{
//save to database
return new Something
{
//all properties here including new primary key from db
};
}
nie mogę uzyskać moja głowa wokół korzyści z takiego podejścia i zastanawiałem się, czy ktoś mógłby pomóc?
Czy to jest wspólne podejście?