Übungsaufgabe 6

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.


Lösung