besserer Stil ?

Status
Nicht offen für weitere Antworten.

sowieso

Aktives Mitglied
Hallo !

Weil man Quellcode letztendlich ja nicht nur für sich selber schreibt, sollte der Programmierstil gut sein.

Nun habe ich eine spezielle Frage, werde aber bestimmt noch auf weitere stoßen, deshalb erst eine allgemeine Frage:

ist irgendwo festgehalten, was für "Stilrichtlinien" es gibt ?? Oder woher soll man riechen, was besserer Stil ist ??

Nun mein spezielles Beispiel:

ich habe die Klasse Matcher, die eine LinkedList enthält. nun erstelle ich von einer anderen Klasse aus eine Instanz der Klasse Matcher. Anschließend füge ich dem Matcher von dieser anderen Klasse aus mit (in etwa)
Code:
matcher.linkedList.add(STRING);
Spieler zu.

Ist es besserer Stil in der Klasse Matcher eine Funktion
Code:
addPlayer(String name) {linkedList.add(name);}
einzuführen, und dann mit dieser von anderen Klassen aus Spieler zuzufügen ??


Vielen Dank schon mal :wink:
 

EgonOlsen

Bekanntes Mitglied
sowieso hat gesagt.:
Ist es besserer Stil in der Klasse Matcher eine Funktion
Code:
addPlayer(String name) {linkedList.add(name);}
einzuführen, und dann mit dieser von anderen Klassen aus Spieler zuzufügen ??
Ja, weil du damit erstens nicht direkt auf das Attribut mit der Liste zugreifst und du zweitens die Implementierung von addPlayer() beliebig ändern kannst, ohne irgendwas anderes außerhalb der Klasse anpassen zu müssen.
 

NTB

Bekanntes Mitglied
Grundsätzlich gibt es sogenannte Coding Conventions, die festhalten, wie der Code geschrieben wird. Darin enthalten sind aber nicht solche strukturellen Stilfragen, wie Du sie dann angefügt hast.

Für Eclipse gibt es das Plugin "Checkstyle", dass den Code schon beim Tippen überprüft und meckert, wenn etwas nicht konform ist bzw Kommentare fehlen. Die Voreinstellungen sind meiner Meinung nach arg streng, aber man kann sie sehr einfach anpassen.

Ansonsten kenne ich PMD noch vom hörensagen.
 

jPat

Bekanntes Mitglied
Ich halte mich an folgendes: :D

Objektvariablen sollten immer private sein. Falls sie nach außen sichtbar sein sollen, getter bzw. setter implementieren.

Wenn möglich, Klassen nach Themen (Schichten) im Programm erstellen.
bsp:
Frame (eigene Klassen) Schicht -> alles was der benutzer sieht.

Datenbank:
SQLReader(hier werden alle daten geholt)
SQLWriter (hier werden alle Daten geschrieben)
(wenn möglich mit Interfaces, damit man sie leichter anpassen kann, Falls ein anderes System zur anwendung kommen soll.)
Datenverarbeitungschicht in eine Zwischenklasse. zb: hinzufügen der Daten aus der Abfrage, mit aufbereitung der Daten (anpassen von Datumsformaten ... )

wenn man sich Konsequent an eigene konventionen hält, kann ein Programm für andere leichter lesbar gemacht werden, da man in den Kommentaren "allgemein" beschreibnen kann, wo der Programmierer etwas findet.

lg
 

Marco13

Top Contributor
jPat hat gesagt.:
Ich halte mich an folgendes: :D

Objektvariablen sollten immer private sein. Falls sie nach außen sichtbar sein sollen, getter bzw. setter implementieren.

In diesem speziellen Fall würde das nicht viel bringen. Wenn man sowas hat wie
Code:
class XXX
{
    private ArrayList playerList;
    public ArrayList getPlayerList() { return playerList; }
}
ist man ja AUCH wieder nicht Implementierungsunabhängig. Stattdessen sollte man (IMHO!) die "relevanten" Informationen nach draußen routen.
Code:
class XXX
{
    private ArrayList playerList;
    
    public void addPlayer(Player p) { playerList.add(p); }
    public int getNumPlayers...    // NUR falls nötig
    public void getPlayer(int i) ... // NUR falls nötig

}
also so, wie es sowieso schon angedeutet hat.
 

jPat

Bekanntes Mitglied
Marco13 hat gesagt.:
jPat hat gesagt.:
Ich halte mich an folgendes: :D

Objektvariablen sollten immer private sein. Falls sie nach außen sichtbar sein sollen, getter bzw. setter implementieren.

In diesem speziellen Fall würde das nicht viel bringen. Wenn man sowas hat wie
Code:
class XXX
{
    private ArrayList playerList;
    public ArrayList getPlayerList() { return playerList; }
}
ist man ja AUCH wieder nicht Implementierungsunabhängig. Stattdessen sollte man (IMHO!) die "relevanten" Informationen nach draußen routen.

Meiner Meinung nach verstößt diese Art gegen das Schichtenmodell, da ALLES was mit der Playerlist zu tun hat in der Klasse XXX stehen sollte.
Da soll man sie nicht nach außen geben.

lg
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben