Mir ist aufgefallen, dass ein Mitarbeiter und ich in Bezug auf die Reihenfolge der Methoden in unseren Java-Klassen unterschiedliche Vorgehensweisen haben. Einer von uns beginnt eine Klasse mit den wichtigsten öffentlichen Methoden und stellt anschließend alle privaten Helfer. Der andere von uns stellt sicher, dass die öffentlichen Methoden ganz am Ende stehen.
Dies ist eindeutig nur ein Stilproblem und es gibt keine richtige Antwort. Bevor wir uns jedoch dazu entschließen, dass es sich nur um einen weiteren Kampf zwischen Yooks und Zooks handelt, und den einen oder anderen willkürlich auswählen, habe ich mich gefragt, ob es vielleicht eine Empfehlung für einen Standard-Java-Styleguide oder einen praktischen Grund gibt, warum ein Ansatz besser ist als der andere.
quelle
Antworten:
Normalerweise wird es bevorzugt, aber Sie sollten auf jeden Fall versuchen, einen gemeinsamen Standard in Ihrem Unternehmen einzuhalten. Also, was auch immer Sie sich entscheiden, wählen Sie einen Standard und übernehmen Sie ihn universell.
Wenn Sie den in Clean Code enthaltenen Vorschlägen folgen , können Sie die Datei wie in einem Zeitungsartikel von oben nach unten lesen, was natürlich nahe legt, dass Hilfsmethoden nach den Methoden angezeigt werden, die sie sind Portion. Dies würde zu einer maximalen Lesbarkeit der Codestruktur führen. Also, wenn du es hättest
Ihre Datei würde wie folgt aufgebaut sein
Ein weiterer Nebeneffekt davon ist, dass Sie feststellen, dass Ihre Helfer ihre eigenen Helfer haben, und dass Sie herausfinden können, welche andere Klasse in Ihrer Datei tatsächlich vorhanden ist, und dass Sie eine Umstrukturierung vornehmen können, um sie in ihre eigene Klasse zu extrahieren, da diese Methoden vorhanden sind bereits in der Reihenfolge zusammengefasst. Aber das ist ein sekundärer Vorteil.
quelle
Öffentliche Methoden sind die Schnittstelle der Klasse. Jemand, der an der Verwendung Ihrer Klasse interessiert ist, kümmert sich nur um die Schnittstelle. Aus Sicht eines Klassenbenutzers wäre es nützlich, zuerst die öffentlichen Methoden zu haben, um das Scrollen zu reduzieren.
quelle
In C und C ++ werden Hilfsmethoden häufig an die erste Stelle gestellt, da Sie dann keine Deklaration benötigen. Viele Menschen haben diese Gewohnheit auf andere Sprachen übertragen, wo es keine Rolle spielt.
Ich bevorzuge die öffentlichen Methoden, da ich normalerweise beim Öffnen einer Datei nach der öffentlichen Schnittstelle suche. Ich möchte nicht über alle Implementierungsdetails hinweg scrollen müssen. Es ist auch der beliebteste Stil, den ich je gesehen habe.
quelle
Ich mag es, wenn die Reihenfolge der Methoden in einer Klasse auf Lesbarkeit und Kontext basiert, nicht auf Sichtbarkeit.
dh eine 'open'-Methode gehört wahrscheinlich vor ein' close '. Wenn zwei öffentliche Methoden 'a' und 'b' ein privates 'c' aufrufen und sie die einzigen sind, die es aufrufen - dann möchte ich, dass 'c' neben ihnen steht.
Ich denke nicht, dass eine Konvention der Methodenreihenfolge basierend auf Sichtbarkeit eine gute Sache ist.
quelle
Ich bevorzuge es, meine Klassen zu besuchen, in denen die Mitglieder in der Reihenfolge ihrer Wichtigkeit / Sichtbarkeit aufgelistet sind (hier meine ich mit Wichtigkeit, die direkten Einfluss auf die öffentliche Schnittstelle haben).
So neigen private Funktionen dazu, heruntergedrückt zu werden.
Es gibt Ausnahmen, in denen ich ähnliche Funktionen auch zusammenfasse, so dass es immer noch möglich ist, kleine private Funktionen zu finden, die mit den öffentlichen Funktionen vermischt sind.
Dies ist, wie Sie sagten, Geschmackssache.
Wenn ich jedoch an Code arbeite, der nicht von mir stammt, werde ich versuchen, die im Projekt verwendeten Konventionen zu befolgen.
Eine gute Möglichkeit, dies im Auge zu behalten, besteht darin, (vorausgesetzt, Sie arbeiten mit Eclipse) eine Code-Formatierungskonfiguration zu erstellen, diese mit der Projektquelle zu exportieren und der Quellcodeverwaltung zuzuweisen. Auf diese Weise ist die neueste und beste Codekonvention für das Projekt nur ein paar Klicks entfernt. Wenn Sie ein CTRL-SHIFT-F-Kommando erstellen, werden viele Argumente vermieden.
Ein zusätzlicher Vorteil der Verwendung automatischer Formatierer besteht darin, dass Sie die gewünschten Aktionen ausführen und den Code vor dem Festschreiben formatieren können. YMMV je nach Konvention und Formatierungswerkzeug.
quelle