Thema: Template Method/Persistenz
Sie haben zwei (evtl. drei) unterschiedliche Implementierungen der Schnittstelle Warteschlange in den Übungsaufgaben 3 und 5 angefertigt (als Reihung, als verkettete Liste und evtl. als Vector).
Erstellen Sie nun eine gemeinsame Oberklasse für Ihre Implementierungen, in der Sie die Schnittstelle
public interface ErwWarteschlange extends Warteschlange { // alle final-Parameter sind auch const public void kopieren(final Warteschlange quelle) throws VollAusn; // const public boolean gleich(final Warteschlange warteschlange); // const public void speichern(String dateiname); // const public void laden(final String dateiname); }
datenstrukturunabhängig implementieren. Hierzu müssen Sie die Warteschlange-Implementierungen mit protected Methoden ergänzen, die Sie in der Oberklasse als abstract kennzeichnen müssen und von dort aufrufen können:
protected void zuruecksetzen(); // fängt von vorne an protected Object naechstes(); // liefert das nächste Objekt protected boolean ende(); // kein Objekt mehr zum liefern
Dieser Weg, datenstrukturunabhängig zu programmieren, wird im Entwurfsmuster template method empfohlen.
Ergänzen Sie Ihren Stapeltesttreiber aus der Übungsaufgabe 3 für die neuen Methoden.