Title: Konzepte der objektorientierten Programmierung
1Konzepte der objektorientierten Programmierung
2Objektorientierung
Paradigma Denkstil Philosophie
Grundkonzepte ...
Abstrakte Klassen
Vererbung
Polymorphie
Entwurfsmuster
Modellierungssprache UML
Implementierung Delphi, Java, ...
3Teil 1
Vererbung
4Klassenvergleich
ChuckALuck
Roulett
Klassen mit ähnlicher Struktur
5Oberklasse Zufallsgeraet
6Unterklasse Wuerfel
7Aufgabe
Ändern Sie das Chuck-A-Luck-Programm (z. B.
ChuckALuck2) so ab, dass die Klasse Wuerfel eine
Unterklasse der Klasse Zufallsgeraet darstellt.
8Teil 2
Abstrakte Klassen Polymorphie
9Abstrakte Klassen
Abstrakte Klassen repräsentieren häufig einen
Allgemeinbegriff. Von einer abstrakten Klasse
werden nie Objektexemplare erzeugt. Sie ist
bewusst unvollständig konzipiert und bildet die
Basis für Unterklassen, die dann Exemplare haben
können.
10Polymorphie
Polymorphie Vielgestaltigkeit Eine Operation
(hier werfen) kann in Unterklassen ganz
unterschiedlich ausgestaltet werden.
11Chuck a Luck mit abstrakten Würfeln
Zur Compilierzeit kann noch nicht festgelegt
werden, wie die Operation werfen ausgeführt
wird.
12Späte Bindung
Erst zur Laufzeit steht fest, welche Objekte am
Spiel beteiligt sind und damit, wie die Operation
werfen ausgeführt wird.
13Aufgabe
Erstellen Sie ein Chuck-A-Luck-Programm mit
gezinkten Würfeln.
14Teil 3
Beobachtermuster
15MVC
model
view2
?
?
view1
16Bisher Koordinator-Situation
Form1 als Koordinator Das Objekt Form1 setzt
zunächst das Spiel in Gang und veranlasst
anschließend die Ausgabe der relevanten Daten.
17Ziel Beobachter-Situation
model
view1
view2
Informiert über eine Änderung
Holt relevanten Daten
18Beobachter-Situation
model
view1
view2
Informiert über eine Änderung
Holt relevanten Daten
Das model-Objekt soll in der Lage sein, andere
Objekte sog. Beobachter-Objekte über eine
Zustandsänderung zu informieren, ohne dabei
Annahmen darüber treffen zu müssen, wer diese
Beobachter-Objekte sind (lose Kopplung).
19Beobachter-Muster
Observable - kennt seine Beobachter (werden alle
in Liste aufgenommen)- bietet Operationen zum
An- und Abmelden von Beobachtern an- mit
notifyObservers werden alle Beobachter
aufgefordert, die Operation update auszuführen
20Beobachter-Muster
Wuerfel - bei jeder Zustandsänderung (hier
werfen) wird die Operation notifyObservers
aufgerufen
21Beobachter-Muster
Observer - legt eine Aktualisierungsschnittstelle
abstrakt fest
22Beobachter-Muster
WuerfelBeobachter1 - kennt das zu beobachtende
Objekt (hier Wuerfel-Objekt) Holt sich hier
die anzuzeigenden Daten- kennt das zu
informierende Anzeigeobjekt
23Beobachter in Aktion
24Literaturhinweise
Helmut Balzert Lehrbuch Grundlagen der
Informatik. Spektrum Ak. Verlag 1999. Heide
Balzert Lehrbuch der Objektmodellierung.
Spektrum Ak. Verlag 1999. Bernd Oestereich
Objektorientierte Softwareentwicklung. Oldenbourg
1998. Erich Gamma u. a. Entwurfsmuster.
Addison-Wesley 1996. Siegfried Spolwig
Objektorientierung im Informatikunterricht.
Dümmler-Verlag 1997. http//hsg.region-kaiserslaut
ern.de/Informatik/MVC/mvc.html (Unterrichtsmateria
lien von K. Merkert)