Packages erstellen

jazzmin

Mitglied
Hallo ihr Lieben,

Bitte verurteilt mich nicht für diese "blöde" Frage, aber ich bin mit der Java Programmierung gerade erst eingestiegen. 😮‍💨

Ich suche jemanden, der mir helfen kann meinen Code in verschiedene Packages aufzuteilen. Klingt total simple, ich weiß, aber ich stelle mich einfach zu blöd an. Ich habe den gesamten Code schon geschrieben, einfach Methode für Methode hintereinander weg. Meine Uni verlangt bei der Aufgabenstellung allerdings die Aufteilung in mehrere Packages. Ich habe einen Plan wie ich den Code aufteilen will, bekomme es aber einfach nicht hin...
 

Robert Zenz

Top Contributor
Du musst uns schon etwas geben mit dem wir arbeiten koennen. Am besten eine kurze Beschreibung was dein Projekt macht, und dann zumindest die Namen von den Klassen welche du bereits hast.
 

jazzmin

Mitglied
Du musst uns schon etwas geben mit dem wir arbeiten koennen. Am besten eine kurze Beschreibung was dein Projekt macht, und dann zumindest die Namen von den Klassen welche du bereits hast.

Sorry.

Es handelt sich um eine einfach Getränkelagerverwaltung. Sie zeigt in einer gui die Getränke mit jeweiligen Lagerbeständen an, die ich über Buttons ändern kann. Mein Programm greift dazu auf eine Datei zu, in welcher die Getränke + Anfangsbestände stehen. Wenn ich die Bestandsänderung über meinen Button eingebe, speichert es diese auch in der Datei. Ich habe auch die Möglichkeit in der Benutzeroberfläche ein neues Getränk+Anfangsbestand hinzuzufügen.
Ich hoffe das war halbwegs verständlich.

Klassen habe ich kaum. Da müsste ich vermutlich welche erstellen und die methoden „verteilen“.

Ich würde gern alles zur gui in ein package, alles zu der datenverarbeitung in ein anderes und dann noch eine zu externen änderungen, da habe ich eine Klasse für eine weitere Datei, welche jede Minute prüft ob es diese Datei gibt und in der ebenfalls Bestandsänderungen stehen, die verarbeitet werden müssen.

Ich hoffe du verstehst mich 🫣
 

Robert Zenz

Top Contributor
Ich würde gern alles zur gui in ein package, alles zu der datenverarbeitung in ein anderes und dann noch eine zu externen änderungen, da habe ich eine Klasse für eine weitere Datei, welche jede Minute prüft ob es diese Datei gibt und in der ebenfalls Bestandsänderungen stehen, die verarbeitet werden müssen.
Ja dann mach' das, klingt doch gut.

Es handelt sich um eine einfach Getränkelagerverwaltung.
Also, ohne jetzt deinen Code zu kennen, wuerde ich folegnde Pakete irgendwo erwarten:

* Model
* Geschaeftslogik
* GUI

Also, sowas in etwa:

Java:
org.javaforum.jazzmin.getraenkelagerverwaltung
 |- core
 |   |- management
 |   |   \- Lagerverwaltung.java
 |   |- model
 |   |   |- Artikel.java
 |   |   \- Lager.java
 |   \- persistence
 |       \- TextDateiVerarbeiter.java
 |- gui
 |   \- Fenster, Panele, Komponenten, und so weiter...
 \- Main.java

Also du hast die Geschaeftslogik und Model getrennt von der GUI. Das hat zwei Vorteile, du kannst die Geschaeftslogik ganz einfach durch automatisierte Tests testen (Unit-Tests), und du kannst die GUI jeder Zeit austauschen, oder mehrere gleichzeitig anbieten. Das schreiben und Lesen der Text-Datei kommt in eine eigene Klasse, dann kannst du auch dort jeder Zeit andere Mechanismen einsetzen.

Und alles was mit der GUI zu tun hat kommt in das GUI-Paket, weil da gehoert es hin. Du musst eben aufpassen dass du keine Geschaeftslogik dort aus Versehen einbaust.

Jetzt wo ich noch so darueber nachdenke, koennte man noch Model und Logik mischen, dann muss man das nicht ganz so zerkleinert handhaben. Aber das siehst du eh in dem Moment wo du das baust.

Zum umbauen selber, fang' damit an dass du das Model in Klassen abtrennst. Dann kannst du anfangen die gesamte Logik in eine eigene Klasse auszulagern.
 

jazzmin

Mitglied
Darf ich dir meinen Code vielleicht einmal als Zip Datei per Mail oder ähnlichem schicken? Damit du sehen kannst, wie ich es meine?

Wenn ich versuche die Methoden in Klassen auszulagern, kommen nur ganze viele Fehler. Ich hab nur Fragezeichen im Kopf 🥲
 

Robert Zenz

Top Contributor
Ich mache hier jetzt mal beinhart einen teilweisen Review, damit andere auch noch etwas davon haben.

Java:
import java.awt.*;

Ich persoenlich wuerde vorschlagen Wildcard-Imports zu vermeiden, es kann zu Kollisionen fuehren und man nimmt die falsche Klasse ohne es zu merken.

Java:
private static final long serialVersionUID = 1L;

Ich weisz dass Eclipse da eine Warnung ausgibt, aber die kannst du genauso gut abschalten. Wenn du nicht vorhast deine Klassen ueber den Standard-Java-Mechanismus zu serialisieren (kleiner Hinweis: Mach das nicht) dann brauchst du dieses Feld nie.

Java:
    // das Lager ist eine Datenstruktur, die Getränke und ihren Bestand
    // speichert
    private Map<String, Integer> lager;

Und Jetzt sind wir beim Kern direkt angekommen. Anstelle einer Map solltest du eigene Model-Klassen machen. Sowas in der Richtung (Pseudo-Code):

Java:
public class Artikel {
    public String getBezeichnung();
    public String getMenge();
}

public class Lager {
    public void addArtikel(Artikel);
    public List<Artikel> getArtikel();
    public Artikel getArtikel(String name);
    public void removeArtikel(Artikel);
}

Mit den Klassen kannst du bereits einen guten Teil der Kapselung herstellen.

Java:
System.exit(0);

Freundliche Erinnerung dass System.exit ein hartes beenden der JVM ist. Das ist in etwas so als wuerde man den Stecker ziehen. Das kann gewollt sein, kann aber auch Seiteneffekte haben, in diesem Fall duerfte es keine Rolle spielen. Nachdem du die Close-Operation auf deinem Fenster gesetzt hast, waere es sauberer das Fenster einfach zu schlieszen und damit dann die Applikation zu beenden.

Der Swing-Code an sich sieht sauber aus, schoen gemacht. Und ich darf wieder auf meine Java Wiederholung zum Thema Boxing verweisen, das ist auch immer schoen.

Um dann noch zur Logik zurueckzukehren. Wenn du dir die obigen Model-Klassen angelegt hast, und dann die Map damit ersetzt hast, kannst du anfangen die Logik in weiteren Klasse zu sammeln. Sowas wie:

Java:
public class Lagerverwaltung {
    private Lager lager = new Lager();
    
    public void eintragen(Artikel artikel);
    public boolean genugVorhanden(String artikelName, int menge);
    public void entnehmen(String artikelName, int menge);
}

Die Klasse verwendest du dann in deiner Oberflaeche. Ist jetzt auch nicht ganz sauber, aber ich bin auch nicht mehr ganz wach. Aber so in die Richtung sollte es gehen.
 

Robert Zenz

Top Contributor
Also nochmal nur um sicher zu gehen: Erster Schritt, ersetzen der Map durch eine List mit Artikel (man koennte auch wieder eine Map machen). Zweiter Schritt, ersetzen dieser List/Map dann durch Lager. Und als dritter Schritt, einen groszen Teil der Logik (ist genuegend da? Gibt es den Artikel?) dann in Lagerverwaltung.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Packages erstellen mit Java-Editor Java Basics - Anfänger-Themen 6
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
B Fragen zur Initialisierung/Zuweisung der Variable + Packages erstellen Java Basics - Anfänger-Themen 4
D Packages mit Wizard erstellen Java Basics - Anfänger-Themen 2
T Packages erstellen und importieren? Java Basics - Anfänger-Themen 10
T Erstellen eigener packages Java Basics - Anfänger-Themen 6
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
A Exceptions und Packages Java Basics - Anfänger-Themen 6
M Probleme beim verwenden von Packages Java Basics - Anfänger-Themen 6
Mxxxt Übersicht Java-Packages Java Basics - Anfänger-Themen 3
D Zusätzliche Packages benutzen? Java Basics - Anfänger-Themen 6
C Java Packages Konvention Namensvergabe Java Basics - Anfänger-Themen 3
B eclipse und packages weiterentwickeln Java Basics - Anfänger-Themen 5
B Compiler-Fehler Packages fehlen? Java Basics - Anfänger-Themen 5
J Eclipse + Java + Packages importieren Java Basics - Anfänger-Themen 7
J eigene packages bzw klassen verwenden Java Basics - Anfänger-Themen 25
S Richtlinien wie man Classen in Packages organisieren soll? Java Basics - Anfänger-Themen 3
G Packages -> was bringen sie? Java Basics - Anfänger-Themen 4
V Java Packages Java Basics - Anfänger-Themen 4
O Funktionen dateiübergreifend mit Packages Java Basics - Anfänger-Themen 6
J Zugriff auf Variable vom typ (default) durch Importieren des Packages? Java Basics - Anfänger-Themen 5
D Javadoc für Packages oder ganze Projekte Java Basics - Anfänger-Themen 5
U Zugriff auf andere Packages Java Basics - Anfänger-Themen 10
S Problem mit Packages Java Basics - Anfänger-Themen 9
C Klassen Main-Routine in Packages? Java Basics - Anfänger-Themen 7
L Konsole und packages Java Basics - Anfänger-Themen 8
B Packages in Eclipse umbennen Java Basics - Anfänger-Themen 12
V Packages: Cannot find symbol Java Basics - Anfänger-Themen 12
Blindxantos Klassen in verschiedene Packages unterteilen Java Basics - Anfänger-Themen 2
B Wie funktioniert der Import von Dritt-packages in Eclipse? Java Basics - Anfänger-Themen 5
K Collections Problem beim import von Packages Java Basics - Anfänger-Themen 10
M Tief verschachtelte Packages Java Basics - Anfänger-Themen 7
Z CLASSPATH + Packages Java Basics - Anfänger-Themen 6
N packages und finden von Klassen Java Basics - Anfänger-Themen 2
J Packages in Jar-Datei Java Basics - Anfänger-Themen 7
D Packages verwenden und in eigenes Projekt integrieren Java Basics - Anfänger-Themen 3
S Anfängerproblem mit Packages Java Basics - Anfänger-Themen 4
J Anfängerfrage zu Grundlagen von Packages Java Basics - Anfänger-Themen 7
B Unterklassen, Packages Java Basics - Anfänger-Themen 3
F Dateipfade mit Packages Java Basics - Anfänger-Themen 7
R mit klassen-instanzen arbeiten in packages Java Basics - Anfänger-Themen 10
F OOP Wrapper ermöglicht Zugriff für andere Packages? Java Basics - Anfänger-Themen 6
T Javac und Packages Java Basics - Anfänger-Themen 4
braindump Packages in verschiedenen Unterverzeichnissen Java Basics - Anfänger-Themen 3
G Verschiedene Packages Java Basics - Anfänger-Themen 3
R wo befinden sich die packages? Java Basics - Anfänger-Themen 5
S 2 Packages Java Basics - Anfänger-Themen 14
D packages importieren Java Basics - Anfänger-Themen 3
I Frage zu Packages Java Basics - Anfänger-Themen 19
T Anagram Game - warum ist es auf 2 Packages aufgeteilt? Java Basics - Anfänger-Themen 3
S problem mit packages Java Basics - Anfänger-Themen 7
G Konventionen für die Bezeichnung von Packages Java Basics - Anfänger-Themen 4
M problem mit packages Java Basics - Anfänger-Themen 5
S Woher Packages bekommen? Wie installieren? (Netbeans) Java Basics - Anfänger-Themen 4
B Packages einfach kopieren? Java Basics - Anfänger-Themen 13
B Fehler beim einbinden eines Packages Java Basics - Anfänger-Themen 6
G Aufgabe mit Packages Java Basics - Anfänger-Themen 3
G erstes Arbeiten mit Packages Java Basics - Anfänger-Themen 2
H javac mit meheren packages Java Basics - Anfänger-Themen 2
G Aus package auf andere eigene packages zugreifen? Java Basics - Anfänger-Themen 7
E import Anweisung und Packages Java Basics - Anfänger-Themen 3
F Pfadfrage in Packages und jar-Archiven Java Basics - Anfänger-Themen 3
P packages verwenden Java Basics - Anfänger-Themen 3
M Variabelzugriff auf fremde Packages Java Basics - Anfänger-Themen 5
D Probleme nach Einbindung einens neuen Packages Java Basics - Anfänger-Themen 5
D Packages Java Basics - Anfänger-Themen 3
T Verständnisproblem packages/import Java Basics - Anfänger-Themen 9
P wohin muss ich die packages kopieren? Java Basics - Anfänger-Themen 12
H Packages in JAR-Datei einbinden Java Basics - Anfänger-Themen 10
S Importieren in Packages Java Basics - Anfänger-Themen 11
C packages, jars - Verstaendnisfrage Java Basics - Anfänger-Themen 7
L Problem mit Packages Java Basics - Anfänger-Themen 5
L Eigene Packages importieren Java Basics - Anfänger-Themen 2
N Packages definieren bzw. zum Classpath hinzufügen Java Basics - Anfänger-Themen 4
A Packages und Vererbung Java Basics - Anfänger-Themen 5
S Packages verwenden Java Basics - Anfänger-Themen 7
T Nerv! Packages und Classpath Java Basics - Anfänger-Themen 2
H probleme mit import von eigenen packages Java Basics - Anfänger-Themen 4
C Packages... Java Basics - Anfänger-Themen 7
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben