Bevorzugter Speicherort der main () -Methode in Java-Klassendatei [geschlossen]

8

Wenn es um Order / Sequenz-Methoden in der Java-Klasse geht. Wo erwartest / siehst du main() method?

  • ganz oben vor jedem Feld (um den Benutzer auf seine Existenz und seine Kraft hinzuweisen ihn zu benutzen)
  • am unteren Rand (damit der Benutzer zuerst die Felder sehen kann und danach die Hauptansicht)
  • nach c-tor
    oder ....

Bitte teile deine Gedanken, das ist eine stilistische / philosophische Frage. Bitte schlage nicht vor, main() in einer separaten Datei zu behalten.

    
Roman Ivanov 27.10.2011, 04:49
quelle

4 Antworten

7

Das sind nur meine Gedanken:

main () ist eine statische Methode, die nichts mit Objektinstanzen zu tun hat. Wir wissen, dass es als Einstiegspunkt existiert, der unser Programm / unsere Klasse ausführbar macht.

Die Sache ist, dass in Java alles (außer Primitiven) ein Objekt ist, also muss main () irgendwo in einer Klasse deklariert werden. Der Code, den eine solche statische Methode ausführen kann, ist eher darauf ausgerichtet, das Programm zur Ausführung einzurichten und an unsere Geschäftslogik (Objekte, die tatsächlich etwas tun) zu delegieren, um die Anwendung auszuführen. Insofern unterscheidet sich ihr Interesse vom Rest unserer Klasse (die einige Daten und Verhaltensweisen definiert, die wir einzukapseln versuchen).

main () gehört nicht wirklich zu den Daten und dem Verhalten unserer alltäglichen Klassen, da ich bezweifle, dass jede Klasse für sich alleine ausführbar sein muss. main () kümmert sich um unser Programm. Daher sollte es in einem Modul des Projekts, das mit dem Start / der Ausführung von Anwendungen in Zusammenhang steht, von unseren Geschäftsobjekten entfernt deklariert werden. Wie Sie vielleicht vermuten, schlage ich genau das vor, was Sie nicht vorschlagen möchten - halten Sie Ihre Klassen und Ihre Logik so weit wie möglich fern und deklarieren Sie sie nur im Kontext eines Einstiegspunktes für Ihre Anwendung / p>

Was den Speicherort in einer Datei selbst angeht, denke ich nicht wirklich, dass es wichtig ist - solange es offensichtlich ist, dass der Code in dieser Datei das Einrichten und Ausführen des Programms betrifft.

    
filip-fku 27.10.2011 05:01
quelle
3

Sun Microsystems hat vor vielen Jahren seine Code Conventions für die Java Programmiersprache veröffentlicht und viele Organisationen folgen ihr in unterschiedlichem Maße.

In diesem Abschnitt schlagen Sie vor, Methoden am Ende einer Datei anzuordnen. Und wie Sie wissen, ist main "nur eine andere Methode", wenn auch eine Klassenmethode anstelle einer Instanzmethode.

Obwohl niemand Sie zwingt, den Konventionen von Sun zu folgen, kann es einen leichten Vorteil geben, relativ nah bei ihnen zu bleiben, da es ein gewisses Maß an Vertrautheit mit ihnen gibt. Die meisten (wenn nicht alle) der JDK-Standardbibliotheken werden folgen.

Dies ist IMHO ein guter Grund, mit dem Methoden-letzten Ansatz zu gehen. In Bezug auf die Platzierung von main unter den Methoden würde es funktionieren, wenn es zuerst oder zuletzt verwendet würde. Wenn Sie es irgendwie "besonders" finden, dann setzen Sie es zuletzt in die Datei.

    
Ray Toal 27.10.2011 05:00
quelle
2

Ich habe es immer am Ende gesagt, denn so machen sie das in C. "Tradition". Was vielleicht nicht so gut ist. : -)

    
user949300 27.10.2011 04:59
quelle
1

Ich nehme an, dass Sie in jeder Klasse, die Sie schreiben, nicht systematisch eine Methode main () einfügen (in diesem Fall müssen Sie sich stattdessen vorstellen, Einheitentests zu schreiben).

Solange Ihre Klasse eine main () -Methode enthält und dies der Einstiegspunkt Ihrer Anwendung ist, sollte diese Klasse außer der Anwendungsinitialisierung kein anderes Verhalten haben. Diese gute Praxis wird "Trennung von Interessen" genannt: eine Klasse = eine Verantwortung.

Wenn das der Fall ist, sollten Sie nicht so viele Methoden in Ihrer Klasse haben. Ich persönlich sortiere Methode immer nach Wichtigkeit: die wichtigsten / nützlichen / zentralen Methoden sind vor allem andere Methoden, die keinen wirklichen Job hinzufügen (Setter und Getter sind für mich solche Dinge).

Auf diese Weise hat der Leser zuerst Zugriff auf die wichtigsten Informationen.

Natürlich bedeutet das Programmieren mit Java Convention, das ich empfehle, dass Sie zuerst Ihre Klassenfelder deklarieren, bevor Sie Ihre Methoden deklarieren.

    
Olivier B. 28.10.2011 08:29
quelle

Tags und Links