Hallo zusammen,
ich habe eine Aufgabe die ich auch zu 90 % gelöst hab, aber bei einer Sache hänge und nicht weiter kommen, vielleicht kann mir ja jemand einen Denkanstoß geben.
Also, hier die Erklärung:
Es geht um eine Export-Schnittstelle von Kunden, die in einer ArrayListe verwaltet werden und das ganze dann über eine Schnittstelle ausgegeben werden soll. Die Kunden werden in einem Container verwaltet, welcher auch neue Kunden anlegt. Der Container implementiert die Schnittstelle Iterable. Es soll eine eigene Schnittstelle ExportI erstellt werden, mit der Operation getExport. Mit dieser Schnittstelle sollen die Kunden einmal als Text ausgegeben werden oder als XML.
Und genau da liegt mein Problem, ich hab die Operation getExport neu geschrieben, aber ich weiß nicht, wie ich den Verbindung zu meiner Kundenverwaltung hinkriege.
Hier mal mein bisheriger Code:
Schnittstelle ExportI
Klasse Kunde
Container zur Kundenverwaltung
UI Klasse mit Main
Schnittstelle TextExport
Schnittstelle XMLExport
Der Code
funktioniert in der UI Klasse, wie schaffe ich es, dass er auch in der TextExport Schnittstelle funktioniert?
ich habe eine Aufgabe die ich auch zu 90 % gelöst hab, aber bei einer Sache hänge und nicht weiter kommen, vielleicht kann mir ja jemand einen Denkanstoß geben.
Also, hier die Erklärung:
Es geht um eine Export-Schnittstelle von Kunden, die in einer ArrayListe verwaltet werden und das ganze dann über eine Schnittstelle ausgegeben werden soll. Die Kunden werden in einem Container verwaltet, welcher auch neue Kunden anlegt. Der Container implementiert die Schnittstelle Iterable. Es soll eine eigene Schnittstelle ExportI erstellt werden, mit der Operation getExport. Mit dieser Schnittstelle sollen die Kunden einmal als Text ausgegeben werden oder als XML.
Und genau da liegt mein Problem, ich hab die Operation getExport neu geschrieben, aber ich weiß nicht, wie ich den Verbindung zu meiner Kundenverwaltung hinkriege.
Hier mal mein bisheriger Code:
Schnittstelle ExportI
Java:
public interface ExportI
{
//abstrakte Operation
public abstract void getExport();
}
Klasse Kunde
Java:
public class Kunde
{
//Attribute
private int nummer;
private String nachname;
private String vorname;
//Konstruktor
public Kunde(int nummer, String nachname, String vorname)
{
this.nummer = nummer;
this.nachname = nachname;
this.vorname = vorname;
}
public int getNummer()
{
return nummer;
}
public String getNachname()
{
return nachname;
}
public String getVorname()
{
return vorname;
}
}
Container zur Kundenverwaltung
Java:
import java.util.*;
public class KundenContainer implements Iterator, Iterable
{
//Klassen-Attribut zum speichern der Referenz auf das Objekt
private static KundenContainer einKundenContainer = null;
private static int kundenNummer = 0;
//Attribut
private ArrayList meineKunden = new ArrayList();
private int index = 0;
private Kunde einKunde;
//Konstruktor, von außen nicht zugreifbar
private KundenContainer()
{
}
//Klassen-Operation, die die Objektreferenz liefert
//Wenn Objekt noch nicht vorhanden, dann wird es erzeugt
public static KundenContainer getObjektreferenz()
{
if (einKundenContainer == null)
{
einKundenContainer = new KundenContainer();
}
return einKundenContainer;
}
//Implementierung der Schnittstelle Iterator
public boolean hasNext()
{
return index < meineKunden.size();
}
public Object next()
{
Object erg = meineKunden.get(index);
index++;
return erg;
}
public void remove()
throws UnsupportedOperationException
{
}
//Implementierung der Schnittstelle Iterable
public Iterator iterator()
{
return this;
}
public void newKunde()
{
einKunde = new Kunde(getKundenNummer(), "Mustermann", "Max");
meineKunden.add(einKunde);
}
private int getKundenNummer()
{
kundenNummer++;
return kundenNummer;
}
}
UI Klasse mit Main
Java:
public class ExportUI
{
public static void main(String[] args)
{
KundenContainer meinContainer = KundenContainer.getObjektreferenz();
for (int i = 0; i < 4; i++)
{
meinContainer.newKunde();
}
System.out.println("Bitte wählen Sie die Ausgabe aus.");
System.out.println("t: Text-Export (Standartausgabe), x:XML-Export");
char auswahl = Console.readChar();
ExportI einExport;
if(auswahl == 'x')
{
einExport = new XMLExport();
}
else
{
einExport = new TextExport();
}
einExport.getExport();
Kunde einKunde;
for (Object o : meinContainer)
{
einKunde = (Kunde)o;
System.out.println("Nummer, Nachname, Vorname; " + einKunde.getNummer() + ", " + einKunde.getNachname()+ ", " + einKunde.getVorname());
}
}
}
Schnittstelle TextExport
Java:
public class TextExport implements ExportI
{
public void getExport()
{
System.out.println("Nummer, Nachname, Vorname; ");
}
}
Schnittstelle XMLExport
Java:
public class XMLExport implements ExportI
{
public void getExport()
{
System.out.println("<Kunde>");
}
}
Der Code
Java:
Kunde einKunde;
for (Object o : meinContainer)
{
einKunde = (Kunde)o;
System.out.println("Nummer, Nachname, Vorname; " + einKunde.getNummer() + ", " + einKunde.getNachname()+ ", " + einKunde.getVorname());
funktioniert in der UI Klasse, wie schaffe ich es, dass er auch in der TextExport Schnittstelle funktioniert?