1. Metody klasy są Kandydaci dla Refaktoryzacja
nie oznacza to metody powinny być automatycznie refactored. Istnieją uzasadnione przypadki, w których dobrze zaprojektowana metoda może mieć długość 100 lub nawet 200 linii. Rozważmy metodę implementującą wyższą funkcję matematyczną, która wykorzystuje duże tablice jako tabele przeglądowe w celu przyspieszenia przetwarzania dla typowych przypadków. Tablice te są całkowicie wewnętrzne dla treści metody, mogą obejmować wiele linii kodu, ale mogą w rzeczywistości znacznie zwiększyć złożoność metod. Te przypadki: itp.). Zrozumienie i zwrócenie uwagi na "przypadki narożnikowe", kiedy ta długość może być w rzeczywistości uzasadniona, i nie skakanie w prawo do dogmatycznych absolutów "zawsze, gdy coś jest X liniami, musisz musi zrobić Y" prawie na pewno będzie lepiej odzwierciedlać ciebie.
2. Klasa sama w sobie jest Kandydat dla Refaktoryzacja
Jak zauważył others istnieją żadne absoluty, jeśli chodzi o jak dużą klasa powinna być w zakresie linii kodu. Jednak Single Responsibility Principle mówi, że klasa powinna robić jedną rzecz dobrze i tylko jedną rzecz. Jest to rozsądne założenie, że ta klasa robi więcej niż jedną rzecz, opierając się wyłącznie na jej długości i że projekt będzie korzystał z rozbicia go na kilka mniejszych klas. Nie jest to jednak żadna gwarancja. Tysiąc wierszy nie jest absurdalnie długich i może być zasłużenie w niektórych przypadkach. Długość metod jest prawie zawsze większym problemem niż długość (w liniach kodu) klasy.
3. Wnioskowanie o zawartości CLASS w
Chociaż istnieje podejrzenie może być błąd w opisie OP problemu: metody 1-N mające 100 linii oraz n + 1 (uwzględnić jeśli n jest dodatnią liczbą całkowitą większą niż 1 --- kończy się ujemną liczbą metod 100 linii). Możesz rozpocząć rozumowanie na temat klasy, jeśli możesz wykonać szybkie obliczenia dotyczące liczby każdego typu metody.
Na przykład, jeśli 2 * a + b = 5 (gdzie jest # 100 metod liniowych i b jest # 200 metod liniowych), to wiesz, że cała klasa jest składa się tylko z tych metod, ponieważ całkowita liczba linii w nich wynosi = 1000. W takim przypadku wiesz, że klasa nie ma konstruktorów, pól lub inicjuje. Wiedząc to, każda metoda musi być static
. Następnie masz klasę, która istnieje tylko po to, aby zapewnić pewne statyczne metody: brzmi jak klasa narzędzia/pomocnika dla mnie.
Znasz także rozmowę: jeśli 2 * a + b!= 5, klasa musi posiadać co najmniej jeden blok pola, konstruktora lub inicjalizatora.
"metody są również w porządku, aby mieć 100-200 linii kodu" - er, nie. –
Dla mnie metody dłuższe niż 40 linii są zdecydowanie nie w porządku, ale przynajmniej musi istnieć dobry powód. – MRalwasser
Świetna odpowiedź społeczności java. Refaktoryzacja jest odpowiedzią. Dziękujemy wszystkim. – gekrish