Ile metoda powinna mieć parametrów ?

0

Dzień dobry,
mam takie pytanie. Ile metoda powinna posiadać maksymalnie parametrów aby wyglądała przyzwoicie ? Muszę wygenerować pewien obraz i teraz metoda posiada ich aż 6 (width, height, accurancy, start, end, sourceImage). Każdy z nich jest ważny. Czy rozbijać to na metody z mniejszą liczbą parametrów czy może tak być ?

Pozdrawiam

0

Zrób kilka wersji skoro nie jesteś pewien, po to w końcu wymyślono przeciążanie funkcji :)

A tak poza tym to możesz zrobić np. z jednym parametrem którym będzie struktura/klasa zawierająca te parametry.

1

Jeśli potrzebujesz, zrób tyle. Ważne, by miało to sens i żeby metoda nie zajmowała się kilkoma operacjami jednocześnie w myśl zasady jednej odpowiedzialności. Jeżeli pojawi się w niej kilka różnych zadań, wtedy to rozbij na pośrednie. Ilością parametrów się nie przejmuj, na pewno nie sześcioma.

0

Metoda powinna wykonywać tylko jedną dedykowaną jej czynność oraz posiadać możliwie jak najmniej parametrów.

1

accurancy :D
Czemu nie zrobisz z tych parametrów jakiegoś DTO? Przecież te parametry są wyraźnie powiązane, więc logicznym jest zrobić ładną klasę immutable która będzie przechowywać te twoje ImageParameters czy co to tam masz.

0
Origin_ napisał(a):

Ile metoda powinna posiadać maksymalnie parametrów aby wyglądała przyzwoicie ? Muszę wygenerować pewien obraz i teraz metoda posiada ich aż 6 (width, height, accurancy, start, end, sourceImage). Każdy z nich jest ważny. Czy rozbijać to na metody z mniejszą liczbą parametrów czy może tak być ?

Jeśli możesz rozbić metodę, bo robi wiele rzeczy na raz, to ją rozbij - niezależnie od tego, ile parametrów przyjmuje. A parametry pogrupuj sensownie i opakuj w jakieś klasy.

pavon147 napisał(a):

Jeśli potrzebujesz, zrób tyle. Ważne, by miało to sens i żeby metoda nie zajmowała się kilkoma operacjami jednocześnie w myśl zasady jednej odpowiedzialności. Jeżeli pojawi się w niej kilka różnych zadań, wtedy to rozbij na pośrednie. Ilością parametrów się nie przejmuj, na pewno nie sześcioma.

A jeśli potrzebuje 50, to ma zrobić 50?!

0

Nie wrzucaj tego w tablice - a jak chcesz wiedzieć czemu to patrz na komentarze tego posta

0

Koledzy dobrze mówią, korzystnie i utrzymanie metody, która posiada 1-2 argumentów jest wyraźnie łatwiejsze i bezpieczniejsze niż sześciu.

0

@somekind

A jeśli potrzebuje 50, to ma zrobić 50?!

Przecież napisałem o sześciu parametrach:

Ilością parametrów się nie przejmuj, na pewno nie sześcioma

Nie wiadomo na jaką skalę to rozwiązanie ma zaistnieć. Może nie warto w ogóle kombinować, a do jakiejś pierdoły (if any) niech ma te 6 parametrów w funkcji.

0

Na studiach mieliśmy taki wykład o nazwie "Perfekcyjna pani kodu", była w nim mowa o tym by metody(funkcje) miały jak najmniej parametrów(optymalnie 1-3) jeżeli twoja metoda ma ich więcej należy zmienić podejście. Rozbić na kilka metod czy klas. W javie można żonglować obiektami co ułatwia sprawę ;P

Na wykładzie była też mowa by nie używać komentarzy, nazwy klas, metod, zmiennych powinny być jasne :P

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