Code optimieren

MarioW1986

Bekanntes Mitglied
Hallo und guten Morgen (wir leben noch alle juhu, dann kann ich meine Fragen noch loswerden :) )
also ich habe einen Programmcode geschrieben, bei dem mir wahrscheinlich jeder hier eine auf die Nuss hauen würde wenn er den sehen würde. Das Programm besteht / bestand aus einer Klasse mit 1350 Zeilen xD ja ich weiß schlagt mich :D Ich habe das Ganze jetzt in mehrere Klassen gesplittet und treffe auf einige "Probleme" bei denen ich mir nich ganz sicher bin wie ich diese lösen kann.

Es geht eigentlich nur um allgemeine Geschichten. Den Code werde ich dan ndenke ich selbst umbauen können. Ich habe leider immer alles nur in einer Klasse abgearbeitet und weiß deshalb nicht, wie ich nun vorgehen muss. Aber erstmal zu meinen Fragen.

1. wenn ich variablen an einer andere Klasse übergeben will, ist es dann sinnvoller das über getter und setter zu machen oder in meiner neuen klasse eine referenz per Klassenname name und dann im Konstruktor this.xxxx = name.xxxx ; zu machen. also was macht mehr sinn und warum :)

2. Dann habe ich noch ein Problem woran ich jetzt schon seit gestern hänge ich aber nicht wirklich verstehe wie ich es lösen soll. geht auch um die Übergabe aus einer anderen Klasse. Ich habe in meiner Klasse Software ein DefaultListModel was ich in einer anderen Klasse weiter verwenden möchte. Gleiches gilt für Buttons und Labels :) wie bekomme ich den Wert / Stand des Labels aus Klasse 1 und bearbeite es in Klasse 2. Die 2. Klasse ist in dem Fall ein ActionListener der ersten Klasse. (falls das eine Rolle spiel)

Über hilfereiche Antworten wäre ich sehr dankbar :)

Gruß Mario
 

Landei

Top Contributor
Bei 1. kommt es sehr auf den Stil des Programms an. Viele meiner Klassen haben gar keine Setter, weil sie nämlich unveränderlich (immutable) sind.

2. Klingt so als könnte man Vererbung benutzen: Wenn du z.B. einen Button-"Design" wiederverwenden willst, leite deine eigene Button-Klasse ab,

Ohne Code müssen die Ratschläge so vage bleiben. Was ich dir noch ans Herz legen möchte, ist das Buch Clean Code, das genau solche Probleme behandelt.
 
T

tröööt

Gast
this.xxx=klasse.xxx würde nur gehen wenn xxx in klasse static ist ...
du nimmst einfach den parameter
Java:
private String string;
public Klasse(final String string)
{
this.string=string;
}
ganz normal OOP
 

Phash

Top Contributor
1.
wenn du Werte in einem Objekt veraendern moechtest, dann brauchst du getter und setter oder andere Methoden, die das erledigen. (oder du bietest die MemberVariablen public an, was aber schlechter Stil ist)

Wenn die Werte nur am Anfang gesetzt werden sollen, dann reicht ein Konstruktor.

2.:
Baue eine Klasse, die deine zu veraendernden Objekte enthaelt und verwende diese Klasse als Instanz in deiner einen Klasse. Nun uebergibst du diese Instanz an eine andere Klasse und diese kann ebenfalls auf die Werte zugreifen.
Solltest du nur einen Wert haben, dann kannst du dir das mit der Klasse sparen und nur das uebergeben.

quasi

Klasse GUI
private List dinge;


Klasse Verarbeiter
private void machWasMitEinerDingeListe(List liste);

du rufst nun in der GUI Klasse die andere Methode auf:
Verarbeiter v = new Verarbeiter();
v. machWasMitEinerDingeListe(List dinge)
 

Ark

Top Contributor
Bei 1. kommt es sehr auf den Stil des Programms an. Viele meiner Klassen haben gar keine Setter, weil sie nämlich unveränderlich (immutable) sind.
Same here. Okay, viele meiner Objekte sind fast immutable, weil sie meist selbst auf zustandsbehafteten Objekten basieren. Aber bei so gut wie allen meiner Klassen können Festlegungen, die im Konstruktor gemacht werden, auch nur dort gemacht werden. Sprich, es gibt keine Setter in dem Sinne, praktisch alle Felder sind final. Und das ist gut so.

Leider wird einem in vielen Grundlagenbüchern zu Java/OOP dieser Setter-Mist beigebracht. In vielen Bereichen, die sehr direkt mit I/O zu tun haben (etwa Dateizugriffe und GUIs), ist ein bisschen Mutabilität gar nicht so übel. Aber beim Austausch von Daten "innerhalb" des eigentlichen Programms sollte Unveränderbarkeit im Vordergrund stehen, denn das führt vor allem zu saubererem und gleichzeitig flexiblerem Code, so meine Erfahrung.

Ark
 

MarioW1986

Bekanntes Mitglied
ein etwas verspätetes Dankeschön für die Antworten. Ich versuche es möglichst gut umzusetzen und melde mich wieder wenn ich nicht weiterkomme. Danke Landei für die Buchempfehlung. ich schau mir das gleich mal an :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Code Optimieren Allgemeine Java-Themen 32
P Code optimieren Allgemeine Java-Themen 9
M Code optimieren Allgemeine Java-Themen 10
M Unsicher, ob das Code richtig ist Allgemeine Java-Themen 4
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
schemil053 Methoden Code-Verbesserung Allgemeine Java-Themen 2
D Webarchive (war): Code verschleiern Allgemeine Java-Themen 7
D Compiler-Fehler child process exited with code 1 Allgemeine Java-Themen 1
Queenman Interface Mein Microsoft Visual Studio Code zeigt komische Dinge & Menüs an Allgemeine Java-Themen 9
A Clean Code: Variable vs. Methode Allgemeine Java-Themen 8
berserkerdq2 Versteht jemand, was diese beiden Zahlen bei dem IJVM Code zu bedeuten haben? Allgemeine Java-Themen 10
OnDemand Releaseversion Tag in Code Allgemeine Java-Themen 5
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
F Code auslagern Allgemeine Java-Themen 5
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
JordenJost Unverständlicher Java code? Allgemeine Java-Themen 21
V Hilfe mit Java Code Allgemeine Java-Themen 4
S Processing Java Code verstehen Allgemeine Java-Themen 4
A code wird nicht ausgeführt Allgemeine Java-Themen 3
B Bitte um Code Erklärung Allgemeine Java-Themen 5
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
N Regulären Ausdruck in normalen Java-Code umwandeln Allgemeine Java-Themen 12
OnDemand Clean Code oder Allgemeine Java-Themen 5
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
J Simple Date Format Alternativen bitte um Code Allgemeine Java-Themen 14
AGW in Java-Code plötzlich ein paar Wörter in Rot Allgemeine Java-Themen 2
L Best Practice Auslagerung von Code = Performance Optimierung? Allgemeine Java-Themen 4
H Precompilierten code ansehen Allgemeine Java-Themen 3
R Wo müsste ich im Code eine Änderung vornehmen? Allgemeine Java-Themen 6
L Ausgabe von in Echtzeit ausgeführten Code Allgemeine Java-Themen 9
Drachenbauer Wie kann ich die menge an code reduzieren? Allgemeine Java-Themen 28
Thallius Warum ist dieser Code OS abhängig? Allgemeine Java-Themen 10
S Code Erklärung Allgemeine Java-Themen 21
B Pausem im Code Allgemeine Java-Themen 2
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
L Eclipse Java Code ausführen Allgemeine Java-Themen 18
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
F Code in Klassen bringen Allgemeine Java-Themen 4
S Gibt es eigentlich Java Source Code Interpreter..? Allgemeine Java-Themen 13
J JUnit - Auslassen von Code Allgemeine Java-Themen 25
F Klassen Spaghetti Code Vermeidung Allgemeine Java-Themen 16
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
J Code Page characters darstellen Allgemeine Java-Themen 12
J wie sollte man sinnvoll seinen Code aufteilen Allgemeine Java-Themen 6
I Python Code in Java Code Allgemeine Java-Themen 9
M Java (GUI) Code verdoppeln oder anzeige mehrmals anzeigen? Allgemeine Java-Themen 8
N Wie öffne ich einen runtergeladadenen Code in IntelliJ Allgemeine Java-Themen 3
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
O Standard library nativer C code Allgemeine Java-Themen 1
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
S Java Editor Bekomme bei der Code-Vervollständigung die Zeichen ​ Allgemeine Java-Themen 3
N Morse Code decoder Allgemeine Java-Themen 9
O Erste Schritte Benzinverbrauch Code Hilfe Allgemeine Java-Themen 3
S Eclipse exit code 805306369 Allgemeine Java-Themen 1
Pataraca Vererbung Code einbinden Allgemeine Java-Themen 3
Developer_X Website HTML Code von HTTPS URL laden Allgemeine Java-Themen 0
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
S Code 'innerhalb' des synchronen Bereichs einer BlockingQueue ausfuehren..? Allgemeine Java-Themen 7
F Verständlichkeitsproblem bei Java Code?! Allgemeine Java-Themen 2
G Eclipse Eclipse: Unreachable code Allgemeine Java-Themen 16
P Java Android Code in IOS compilieren? Allgemeine Java-Themen 9
C Code vereinfachen Allgemeine Java-Themen 2
T Hilfe bei Code Allgemeine Java-Themen 3
R Java-Code für folgene Aufgabe? Allgemeine Java-Themen 8
Prafy Best Practice Code Refaktorisierung Allgemeine Java-Themen 7
WetWer Was bedeutet/macht ein Exit-Code Allgemeine Java-Themen 1
D Code für bereitgestellte Methoden Allgemeine Java-Themen 1
perlenfischer1984 HTML Code decodieren Allgemeine Java-Themen 2
C ASCII-Code in Java Allgemeine Java-Themen 1
J Java-Code in DLL packen Allgemeine Java-Themen 5
J LWJGL 3 Error Code 1282 Allgemeine Java-Themen 4
0 Code startet nicht (Keine Warnung/Fehlermeldung) Allgemeine Java-Themen 4
A Frage zu meinem Code Allgemeine Java-Themen 2
B Code generierung Velocity Templates Telosys Allgemeine Java-Themen 1
E Fehlermeldung vor dem Programm code Allgemeine Java-Themen 1
B JAVA - mehrere Clienten gleichzeitig starten. Nicht bei Code! Allgemeine Java-Themen 3
Fischkralle Ausführen von fremden Code Allgemeine Java-Themen 14
wolfgang63 Code snipped Software Allgemeine Java-Themen 1
L Eclipse Editieren des Code templates für Override methods Allgemeine Java-Themen 2
J Java code "plugin" fähig machen Allgemeine Java-Themen 4
alderwaran .jar Code Signing, User-Keystore und Fragen dazu Allgemeine Java-Themen 0
Thallius Wie verstecke ich meinen private Key am besten im Code? Allgemeine Java-Themen 10
A Thread: Code paralell ausführen in mehreren Instanzen Allgemeine Java-Themen 1
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
N HTTP response code: 403 Allgemeine Java-Themen 3
D Code bitte mit 19 stelligen Zahlen kompatibel machen Allgemeine Java-Themen 5
D Java Compiler code referencen Allgemeine Java-Themen 0
B Fehler im Java-Code Allgemeine Java-Themen 4
A PHP-Code zu Java-Code Allgemeine Java-Themen 5
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
X Was macht folgender Code!? Allgemeine Java-Themen 6
K Code zu einem Projekt entschluesseln Allgemeine Java-Themen 15
H Java Leistungssteigerung durch Code Anpassung Allgemeine Java-Themen 5
Fab1 Best Practice Vorgehensweise bestehenden Code/Programm verschönern Allgemeine Java-Themen 4
A jEditorPane Html Datei öffnen (code) Allgemeine Java-Themen 3
S EAN-Code Tabelle für CD's Allgemeine Java-Themen 2
T Code durch eigenes Frame pausieren (ähnlich JDialog) Allgemeine Java-Themen 4
J Erzeugung von Java-Code Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben