2009-08-28 14 views
6

W Rubim bardzo często spotyka się metody, które otrzymują mieszanie parametrów zamiast tylko przekazywać parametry do metody.Hashe vs. Wiele params?

Moje pytanie brzmi - kiedy używasz parametrów dla swojej metody i kiedy używasz skrótu parametrów?

Czy słusznie jest powiedzieć, że dobrą praktyką jest użycie skrótu parametru, gdy metoda ma więcej niż jeden lub dwa parametry?

Odpowiedz

0

Jednym oczywistym przypadkiem użycia jest nadpisanie metody w klasie potomnej, należy użyć parametrów mieszania dla parametrów metody nadrzędnej, gdy ją wywołujesz.

4

Używam skrótów parametrów, ilekroć reprezentują zestaw opcji, które semantycznie należą do siebie. Wszelkie inne parametry, które są bezpośrednimi (często wymaganymi) argumentami funkcji, mijam jeden po drugim.

+1

+1 - nic w haszdzie parametru nie powinno być wymagane. Opcjonalne parametry mogą być nazwane, z wartościami domyślnymi, ale zazwyczaj przekazuję je w haszowaniu i ustaw domyślne w treści metody, jeśli to konieczne. –

1

Możesz użyć skrótu, gdy istnieje wiele opcjonalnych parametrów lub jeśli chcesz zaakceptować dowolne parametry, jak widać na wielu metodach szyn.

0

Na innej notatki, i to nie tylko związane z Ruby, ale do wszystkich językach:

W API, które są w ruchu, to czasami warto zadeklarować niektórych lub wszystkich parametrów do funkcji jako pojedynczy parametry obiektu (w Rubim mogą to być skróty, w C-strukturach itd.), aby zachować stabilność API w przypadku zmiany zestawu akceptowanych argumentów w przyszłych wersjach. Jednak oczywistą wadą jest to, że czytelność jest drastycznie zredukowana, a ja nigdy nie użyłbym tego "wzoru", chyba że naprawdę musiałbym.

1

jeśli masz więcej niż 2 argumenty. powinieneś zacząć myśleć o używaniu hasza. To jest dobra praktyka jasno wyjaśniona w czystym kodzie link text