Czy zwracanie krotek z serwisów to dobry pomysł?

0

Jak lepiej pisać?

  1. public async Task<Result<ProductViewModel>> Get(int productId);
  2. public async Task<(Error error, ProductViewModel model)> Get(int productId);

Klasa Result<T> przechowuje także informację o błędzie, jeśli takowy wystąpił.

3

Zawsze dążę do pierwszej wersji. Jest zdecydowanie prostsza i dużo bardziej czytelna, mimo wszystko. Poza tym utrzymanie drugiej wersji może się okazać problematyczne. Wyobraź sobie sytuację, gdzie kiedyś dojdzie do tego jakaś trzecia informacja. Przy wersji pierwszej w najlepszym wypadku zmianę robisz tylko w jednym miejscu. Przy wersji drugiej - w każdym.

3

Ja krotek czasami używałem w prywatnych metodach pomocniczych.

W przypadku publicznego interfejsu IMO lepiej zwracać klasę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1