Hallo, ich hab die Aufgabe eine Konsolenanwendung zu schreiben, die Datensätze verwalten soll (d.h. CRUD Operationen). Ich hab die „Entitäten“ Lieferant, Kunden, Fuhrpark die jeweils verwaltet werden können sollen. Ich habe hierbei 2 Probleme:
1. Dynamische Menüstruktur
2. Dynamische Bearbeitung der Entitäten
Insgesamt wird wohl eine Menustruktur entstehen die wie folgt aussieht:
1. Mit jetzigem Wissensstand ende ich in etwas wie diesem:
Was ich sehr hässlich finde und nichts mit Objektorientierung zu tun hat.
2. Mit jetzigem Wissensstand ende ich in etwas wie:
Hier das Einlesen/Anlegen eines neuen Kunden - für Lieferant und Fahrzeug wäre es sehr ähnlich da ich alle Parameter des Konstruktors einlese und ggf. Konstruktoren eines Parameters (hier bei Adresse).
Was noch viel schlimmer ist. Überall finde ich nur Beispiele so wie ich es nun implementiert habe. Ich wiederhole somit aber viel zu viel. Es fühlt sich einfach komplett falsch an.
Ich benötige ein paar Ansätze welche Möglichkeiten es gibt das ganze „richtig“ zu implementieren.
1. Dynamische Menüstruktur
2. Dynamische Bearbeitung der Entitäten
Insgesamt wird wohl eine Menustruktur entstehen die wie folgt aussieht:
Code:
1 Kunden
Auflisten
Anlegen
Bearbeiten
Löschen
2 Lieferanten
Auflisten
Anlegen
Bearbeiten
Löschen
3 Fuhrpark
Auflisten
Anlegen
Bearbeiten
Löschen
Java:
boolean abbruch = false;
while( !abbruch ) {
switch( io.readMainMenu() ) {
case 1: {
switch( io.readKundenverwaltungsMenu() ) {
case 1:
io.readNewKunde();
break;
case 2:
io.printKunden();
break;
...
}
}
break;
}
}
2. Mit jetzigem Wissensstand ende ich in etwas wie:
Hier das Einlesen/Anlegen eines neuen Kunden - für Lieferant und Fahrzeug wäre es sehr ähnlich da ich alle Parameter des Konstruktors einlese und ggf. Konstruktoren eines Parameters (hier bei Adresse).
Java:
public Kunde readNewKunde() {
return new Kunde(
readNewAdresse()
);
}
private Adresse readNewAdresse() {
boolean valid = false;
String firmenname;
String ansprechpartner;
String strasse;
int hausnummer;
int plz;
String stadt;
EULand land = null;
int telefon;
do {
firmenname = read("Firmenname: ");
ansprechpartner = read("Ansprechpartner: ");
strasse = read("Strasse: ");
hausnummer = (int) readNumber("Hausnummer: ");
plz = (int) readNumber("PLZ: ");
stadt = read("Stadt: ");
try {
land = EULand.getKey( read("Land: ") );
valid = true;
} catch (UnknownCountryException ex) {
ausgabe("Unbekanntes Land!");
}
telefon = (int) readNumber("Telefon: ");
} while (!valid);
return new Adresse(
firmenname,
ansprechpartner,
strasse,
hausnummer,
plz,
stadt,
land,
telefon
);
}
Ich benötige ein paar Ansätze welche Möglichkeiten es gibt das ganze „richtig“ zu implementieren.