Die Aufgabe
Aufgabe 3
Untersuchen Sie den Code im Paket „buero“ und führen Sie die main-Methode der Klasse „BueroApp“ aus.
Der Texteditor bekommt einen Laserdrucker zugeordnet, dessen Methoden er aufruft, um etwas auszudrucken. Das Grafikprogramm bekommt einen Flachbettscanner zugeordnet, dessen Methoden es aufruft, um etwas einzuscannen.
Möchte man im Texteditor eine andere Art von Drucker nutzen, z. B. ein Objekt der Klasse „Tintenstrahldrucker“, ist das nicht so einfach möglich. Auch die Zuordnung einer – noch zu programmierenden – anderen Art von Scanner zum Grafikprogramm ist nicht ohne Weiteres möglich.
a) Ändern Sie den Code so, dass es leicht möglich ist, einem Texteditor eine andere Art von Drucker und einem Grafikprogramm eine andere Art von Scanner zuzuordnen. Definieren Sie hierfür ein Interface für Drucker und eines für Scanner. In der main-Methode soll der Texteditor nach dem Drucken auf dem Laserdrucker einen Tintenstrahldrucker zugeordnet bekommen und darauf noch einmal drucken.
b) Fügen Sie eine weitere Klasse „Kombigerät“ hinzu. Ein Kombigerät kann sowohl als Scanner als auch als Drucker genutzt werden. Weisen Sie in der main-Methode das Kombigerät sowohl dem Texteditor als Drucker als auch dem Grafikprogramm als Scanner zu und rufen Sie dessen Drucker- bzw. Scanner-Methoden auf.
Der Texteditor soll mit jedem Drucker arbeiten, das Grafikprogramm mit jedem Scanner. Dazu bekommen Drucker und Scanner je ein Interface. Danach kommt ein Gerät dazu, das beides ist.
- Das Problem der Ausgangslage verstehen.
- Interfaces Drucker und Scanner, Geräte implementieren sie.
- Texteditor und Grafikprogramm auf die Interfaces umstellen, testen.
- Das Kombigerät implementiert beide Interfaces.
Das vorgegebene Paket buero liegt uns nicht vor. Die Ausgangslage in Schritt 1 haben wir nach dem Aufgabentext nachgebaut. Die Lösung folgt der Musterlösung. Alle Klassen stehen hier in einer Datei BueroApp.java, nur BueroApp ist public.