• Keine Ergebnisse gefunden

Dr. Johannes Mayer Abteilung Angewandte Informationsverarbeitung 23. Juni 2005

N/A
N/A
Protected

Academic year: 2021

Aktie "Dr. Johannes Mayer Abteilung Angewandte Informationsverarbeitung 23. Juni 2005"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Dr. Johannes Mayer Abteilung Angewandte Informationsverarbeitung 23. Juni 2005

Hans Braxmeier Blatt 8

Ralph Guderlei

UNI VE RS I T Ä T UL

M

· SCIE

DN O DO · CE O ND C · RU

DNA

O

·

Design und Architektur von Softwaresystemen (SS 2005)

Abgabetermin: 08. Juli 2005

1 Web– und Swing–GUI (20 Punkte)

Stellen Sie sich eine Klassenbibliothek f¨ur Benutzungsschnittstellen vor, die mehrere GUIs wie z.B. Web–GUIs, Swing–GUIs oder AWT–GUIs unterst¨utzt. Unterschiedliche GUIs sehen zwar etwa unterschiedlich aus, sind aber vom Prinzip her im Wesentlichen dasselbe. Um zwischen verschiedenen GUIs portierbar zu sein, sollte sich eine Anwendung nicht auf eine GUI festlegen m¨ussen. Dies geht, wenn man konsequent nur gegen Schnittstellen und nicht gegen irgend welche Klassen programmiert.

Teilaufgabe a) (Abgabe bis zum 1. Juli, 10 Punkte)

Definieren Sie aufbauend auf dem letzten ¨ Ubungsblatt Schnittstellen f¨ur alle wichtigen GUI- Elemente (Window, Panel, Button, etc.). Danach implementieren Sie mit den konkreten Klassen WWindow, WPanel etc. jeweils die entsprechende Schnittstelle. Damit der Klient (also die kon- krete GUI) nicht bei der Erzeugung der einzelnen Elemente einen Konstruktoraufruf machen muss, definieren Sie eine abstrakte Fabrik, also eine Schnittstelle GUIFactory mit Methoden zur Erzeugung der einzelnen GUI-Elemente (also constructWindow(), constructPanel(), etc.). Diese Schnittstelle implementieren Sie dann mit einer konkreten Klasse WebFactory, mit der Sie dann die Objekte von WWindow, WPanel, etc. bei den entsprechenden Methoden erzeugen. Der Kli- ent wird von außen (!) mit einer GUIFactory konfiguriert, arbeitet nur mit GUI-Schnittstellen und erzeugt die Objekte durch Methodenaufrufe bei der GUIFactory (von der er nicht weiss – da Schnittstelle – was f¨ur ein Typ von GUI sich dahinter verbirgt).

Im letzten ¨ Ubungsblatt wurde das Spiel Tic–Tac–Toe in Form einer webbasierten Anwen- dung (Servlet) mit einer Web–GUI (GUI mit ereignis–orientierter Verarbeitung) vorgestellt.

Passen Sie nun Ihr (oder das vorgestellte) Tic–Tac–Toe–Spiel so an, dass es mit den Schnitt- stellen wie oben beschrieben funktioniert.

Teilaufgabe b) (Abgabe bis zum 8. Juli, 10 Punkte)

Implementieren Sie nun das Spiel Tic–Tac–Toe in Form einer swingbasierten Anwendung. Ver- wenden Sie dabei die in Teilaufgabe a) vorgestellte Architektur. Dazu m¨ussen Sie konkrete Implementierungen der Schnittstellen SButton, SWindow, etc. machen, die eine Swing-GUI er- zeugen. (Tipp: Ein SButton enth¨alt einen JButton, d. h. es liegt eine Komposition vor.) Erstellen Sie außerdem eine passende Fabrik f¨ur die Swing-GUI-Elemente. Nun sollte Ihre Tic–Tac–Toe–

Anwendung aus der letzten Teilaufgabe ohne Modifikation sofort als Swing-GUI verwendbar sein.

Viel Erfolg!

Referenzen

ÄHNLICHE DOKUMENTE

(b) Erweitern Sie Ihr Programm so, dass die Größe (in Bytes) aller darin enthaltenen regu- lären Dateien ausgelesen werden und eine Häufigkeitsverteilung über die Anfangszif-

Unser find soll als Programmoptionen eine beliebige Zahl von Bedingungen (auch: Prä- dikaten), gefolgt von einer beliebigen Zahl von Verzeichnissen entgegennehmen und alle Dateien

derzeitiges Hoechstgebot (Frank Reich um 10:25:55): 3.12 Euro Gebot (in Cent) eingeben oder <ENTER> fuer Aktualisierung: 517 Gebot liegt nicht ueber aktuellem

Gesamtkosten = Fixkosten der Abteilung + Verdienst der Angestellten + Zus¨atzlich er- brachte Leistungen ( ¨ Uberstunden der Angestellten * halber Stundenlohn). • Abteilung

Ziel des Spiels 4-Gewinnt ist es, als erster von zwei Spielern vier Steine in einer Reihe, einer Spalte oder in einer Diagonalen zu bekommen. Dazu werfen die Spieler jeweils

M¨ochte ein Spieler gegen einen anderen Spieler antreten und es gibt bereits wartende Spieler, so werden diese angezeigt und der Spieler kann sich einen Gegenspieler aussuchen –

• Wird die Frage falsch beantwortet, ist das Spiel vorbei und der Kandidat erh¨alt 0, 500 oder 16000 Euro (je nachdem ob er gerade eine der ersten, der mittleren oder der

Implementieren Sie nun noch einen etwas sinnvolleren eigenen Layout-Manager names Table- Layout, bei dem man die Aufteilung des freien Platzes f¨ur die Spalten und Zeilen ¨uber