Es ist eine sehr einfache Frage, aber ich denke, es ist ein bisschen umstritten.
Wenn ich Java-Klassen codiere, verwende ich die folgende Reihenfolge.
%Vor% Ich habe einen Artikel gelesen, der sagt:
(Aus Ссылка )
Java-Typen sollten die folgende Mitgliederreihenfolge haben:
Verschachtelte Typen (Mischen von inneren und statischen Klassen ist in Ordnung)
Statische Felder
Statische Initiatoren
Statische Methoden
Instanzfelder
Instanzinitialisierer
Konstruktoren
Instanzmethoden
Wenn ich dem Artikel folge, sollte die obige Reihenfolge
sein %Vor%Im letzteren Fall fühle ich mich unwohl, einige Methoden vor den Konstrukteuren zu haben. Welches ist die am weitesten verbreitete Konvention?
Ich glaube, die Java-Kodierungsstandards von Sun (jetzt Oracle) werden häufiger verwendet. Das verwenden Sie auch gerade.
Von Code-Konventionen für die Programmiersprache Java TM :
3.1.3 Deklarationen von Klassen und Interfaces
Die folgende Tabelle beschreibt die Teile einer Deklaration einer Klasse oder einer Schnittstelle in der Reihenfolge, in der sie stehen sollte erscheinen.
- Kommentar zur Klasse / Schnittstellendokumentation (/*.../)
class
oderinterface
Anweisung- Kommentar zur Implementierung der Klasse / Schnittstelle (/ .../), falls erforderlich
- Klasse (
static
) Variablen- Instanzvariablen
- Konstruktoren
- Methoden
Persönlich verwende ich Option 2 (statische Felder und Methoden vor Instanzelementen und Konstrukten). Für mich ist das sinnvoll, wenn ich eine Datei scanne, weil ich von einem Benutzer einer Klasse auf das statische Material zugreifen kann, ohne eine Instanz zu benötigen. Daher ist es schön, sie vor den Konstruktoren zu sehen, weil mir Konstruktoren bei der Verwendung von statischem Material egal sind.
Nur aus dem GWT-Artikel, den Sie verlinkt haben:
Wir erkennen an, dass es viele großartige Ansätze gibt. Wir versuchen nur eine auszuwählen, die zumindest den Java-Kodierungskonventionen von Sun entspricht ...
Also der Stil, den sie benutzen
Also würde ich sagen, wenn es keinen Grund gibt, nicht bei Ihren derzeitigen Konventionen zu bleiben, warum sollten Sie sie ändern?
Die Java-Code-Konventionen schlagen folgendes vor (was im Grunde das ist, was Sie tun bereits tun):
Ich weiß nicht, aber für das, was es wert ist, tue ich, was Sie tun. Konstruktoren oben, Methoden gruppiert nach Funktionalität (ohne Berücksichtigung der Statik) unten. Statische Methoden neigen zur Gruppierung.
Die Ausnahme sind statische Factory-Methoden, die ich anstelle von Konstruktoren verwenden soll - wenn dies der Fall ist, sind sie vor den Konstruktoren und die Ctors sind private / protected.
Es ist natürlich alles eine Frage der Vorliebe ...
Ihre Konvention ist konsistenter mit der Standardreihenfolge in Javadoc (d. h. statische und nicht-statische Methoden zusammen). Das mache ich normalerweise auch.
Jedoch werden innere Klassen oft am Ende einer Klasse platziert, da sie oft "sekundäre" oder "Helfer" -Klassen sind und es seltsam erscheint, sie vor das Hauptfleisch des äußeren zu setzen Klasse.
Tags und Links java coding-style convention