Wpis z mikrobloga

#programowanie #java

Mirki mam takie pytanie: jaka jest hierarchia metod/pól w klasie (chodzi mi o javie, jeśli nie dla wszystkich jest tak samo).

Dla przykładu klasa Dog:

public Class Dog{
najpierw pola;

następnie konstruktory;

następnie metody nasze;

następnie metody nadpisywane;

na końcu gettery i settery;

a poniżej ewentualna klasa wewnętrzna;
}

Jest to w ogóle jakoś przyjęte? Jakiś standard hierarchii klas?
  • 11
  • Odpowiedz
@nuker92: Są różne style. Niektórzy lubią mieć np. metody poukładane alfabetycznie, innym wszystko jedno. Uncle bob namawia do tego, żeby przenosić stałe (private static final...) na sam dół klasy, aby nie było ściany delkaracji zaraz po otwarciu pliku.

Jeśli chodzi o metody to też dobrze je ułożyć tak, żeby się klasę dobrze czytało. Ja lubię układać tak, że najważniejszą metodę klasy daję na samej górze. Potem daję te, które ona wywołuje a potem następny poziom zagnieżdżenia.

Jeśli masz więcej niż jedną najważniejszą metodę w klasie to prawdopodobnie, próbujesz w tej klasie zrobić za dużo i psujesz Single Responsibility
  • Odpowiedz
@ania-nowak1231: Wydaje mi się, że podając skróty klawiszowe powinnaś też podać narzędzie w jakim one działają :)


@moriturius: If you're not using IntelliJ you're doing it wrong ( ͡° ͜ʖ ͡°)

Tak naprawdę to czy sortujesz A-Z czy Z-A czy jeszcze coś innego nie ma większego znaczenia. Jeśli masz w miarę normalne klasy (<200 linii) IDE zrobi wszystko za Ciebie.
  • Odpowiedz
@nuker92: Jeżeli chodzi o metody, to zasady clean code mówią, aby pisać je "od ogółu do szczegółu", tak jakbyś pisał artykuł w gazecie, tzn. najpierw metody publiczne, a potem metody prywatne wykonujące już jakieś "niskopoziomowe" rzeczy wywoływane wyżej
  • Odpowiedz
@ania-nowak1231: Intellij nie jest lekiem na wszystko i nie każdemu jest on potrzebny do szczęścia, co z Ciebie za programista, który kończy się tylko jednym IDE. Polecam przetestować najnowszego NetBeans'a, który jest zestawieniem kompaktowego i w miarę wygodnego interfejsu, całkiem wysokiej wydajności działania oraz nie robiącego kłopotów z pluginami środowiskiem. A to wszystko za darmo. ( ͡° ͜ʖ ͡°)
  • Odpowiedz