Podoba mi się koncepcja System.Tuple, ponieważ pozwala mi zwracać wiele parametrów w jednym wywołaniu funkcji bez tworzenia nowej klasy, jednak nie podważa to żadnych dobrych praktyk programistycznych, takich jak Wzorce i praktyki Microsoft, Zasady SOLID itp.
Próbuję tylko ocenić, jak swobodnie powinienem korzystać z tej funkcji lub czy powinienem jej używać tylko w razie potrzeby w scenariuszach typu edge case.
.net
patterns-and-practices
Kyle Ballard
źródło
źródło
Odpowiedzi:
Problem z używaniem
Tuple
polega na tym, że ogólne parametry typu nie przekazują znaczenia.Dla czytelności możesz rozważyć użycie niestandardowej klasy lub nawet anonimowego typu z nazwanymi członkami.
źródło
T1
,T2
itd. Nie powiem ci, co mają na myśli.GetTopTwoPercentages()
która zwraca aTuple<decimal, decimal>
. To może być dość jasne.Jedną z najważniejszych cech kodu jest czytelność. Więc zadaj sobie pytanie:
kiedy ja (tj. W kimkolwiek innym niż ty) patrzę na sygnaturę metody, czy wiem, jakie znaczenie mają odpowiednie elementy
Tuple
?Na przykład, jeśli zwracana para pływaków jest zbiorem współrzędnych biegunowych, czy jest to jasne?
To jasne:
Jest to mylące (ponieważ zakłada się współrzędne kartezjańskie):
A to pozbawione jest znaczenia:
Ogólnie rzecz biorąc, będziesz musiał oceniać jasność na podstawie poszczególnych przypadków i refaktoryzować, jeśli to konieczne. Jeśli reprezentujesz ten sam rodzaj danych, co
Tuple
w wielu różnych miejscach, utworzenie klasy jest zdecydowanie dobrym pomysłem.źródło