• Keine Ergebnisse gefunden

Blatt 5: Entwurfsmuster

N/A
N/A
Protected

Academic year: 2022

Aktie "Blatt 5: Entwurfsmuster"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Hochschule Niederrhein Objektorientierte Prof. Dr. Rethmann

Fachbereich 03 Anwendungsentwicklung Prof. Dr. Davids

Bachelor Informatik Sommersemester 2018 Ubung 5¨

Entwurfsmuster

Aufgabe 12: Zustandsmuster

Gegeben sei ein Getr¨ankeautomat, der die Auswahl zwischen 3 Getr¨anken bietet: Kaffee, Suppe und Limonade. Die Getr¨anke kosten unterschiedlich viel Geld, evtl. ist eine Ge- tr¨ankeart nicht mehr verf¨ugbar. Der Automat akzeptiert M¨unzen im Wert von 5c, 10c, 20c, 50c, 1e und 2e sowie Geldscheine im Wert von 5e, 10e und 20e, R¨uckgeld wird erstat- tet. Beim R¨uckgeld k¨onnen Sie davon ausgehen, dass immer gen¨ugend M¨unzen vorhanden sind.

Implementieren Sie ein interaktives Programm, mit dem der Kauf eines Getr¨anks simu- liert werden kann. Der Getr¨ankeautomat soll mittels des Zustandsmusters implementiert werden. Die Benutzeroberfl¨ache kann wie folgt aussehen:

Zustand: bereit (1) Kaffee: 60c (2) Suppe: 78c (3) Limonade: 45c ---

Ihre Auswahl?

Nach der Auswahl eines Getr¨anks wird der zu zahlende Betrag angezeigt:

Zustand: geldeinwurf noch zu zahlen: 37c Ihre Eingabe?

Auf jeder Ebene soll ein Abbruch m¨oglich sein.

Erstellen Sie zu Ihrer Implementierung ein UML-Klassendiagramm sowie ein Sequenzdia- gramm, aus dem der Ablauf beim Zustandswechsel hervorgeht.

(2)

Aufgabe 13: Decorator-Muster1

Eine Kaffeehaus-Kette, nennen wir sie Sternback-Kaffee, verkauft in vielen Filialen unter- schiedliche Kaffeearten wie Hausmischung, dunkel ger¨ostet, entkoffeiniert oder Espresso sowie verschiedene Zutaten wie heiße Milch, Soja, Schokolade oder Milchschaum. Je nach Kaffeeart und Zutaten ist f¨ur das Getr¨ank ein Preis zu berechnen.

Zur Modellierung verwenden wir das Decorator-Muster. Wir beginnen also mit einem Ge- tr¨ank und dekorieren es zur Laufzeit mit Zutaten. Wenn der Kunde eine dunkle R¨ostung mit Schoko und Milchschaum m¨ochte, geht das beispielsweise so:

1. Wir nehmen ein DunkleR¨ostung-Objekt, 2. dekorieren es mit einem Schoko-Objekt, 3. dekorieren es mit einem Milchschaum-Objekt,

4. rufen die Methode preis() auf und st¨utzen uns auf Delegierung, um den Preis f¨ur die Zutaten hinzuzuf¨ugen.

Implementieren sie obige Klassen unter Verwendung der angegebenen Modellierung. Er- stellen Sie ein Beispielprogramm. Wie sieht das UML-Klassendiagramm aus?

Aufgabe 14: Observer-Muster

Erweitern Sie eine Klasse Ihrer Wahl um Beobachterfunktionen. Die Klasse soll der Spei- cherung beliebiger Daten dienen (z.B. der Heap aus Aufgabe 4, ¨Ubungsblatt 2.). Es soll m¨oglich sein, Beobachter der gew¨ahlten Klasse an- und abzumelden und die Besucher ¨uber Anderungen an der Speicherstruktur (Einf¨ugen, L¨oschen, Sortieren etc.) zu unterrichten.¨ Schreiben Sie eine Klasse Logger, die ¨Anderungen (z.B. insert und extractMin beim Heap) in einer Datei protokolliert. Erstellen Sie ferner eine KlasseCounter, der die Anzahl der ¨Anderungen z¨ahlt. Beide Klassen sollen als Beobachter angemeldet werden.

1Dieses Beispiel ist dem Buch

Entwurfsmuster von Kopf bis Fuß“ von Eric Freeman und Elisabeth Freeman entnommen. Das Probekapitel ¨uber das Entwurfsmuster

Decorator“ kann beim Verlag O’Reilly heruntergeladen werden.

Referenzen

ÄHNLICHE DOKUMENTE

1.4.4 Laplace-Prinzip in kontinuierlichen Wahrscheinlichkeitsr¨ aumen Das folgende Beispiel zeigt, dass im kontinuierlichen Fall die Bedeutung von.. ” gleichwahrscheinlich“ nicht

Eine gr¨oßte Zahl gibt es nicht, denn die Zahl 200 000 000 001 ist noch gr¨oßer, und durch weiteres Verdoppeln oder +1-Addieren kann man immer noch gr¨oßere Zahlen

Bei solchen Aufgaben ist es oft g¨unstig, eine einfache ¨ahnliche Rechnung mit kleineren Zahlen auf- zustellen, also z.. (Siehe Bemerkung zu

50 km spielen bei der Berechnung des Drehwinkels

F¨ur den oberen Streifen hat man 7 M¨oglichkeiten, f¨ur den zweiten nur noch 6 (da dieser ja nicht die Farbe des ersten haben darf), f¨ur den dritten ist die Farbe des