Konzepte der objektorientierten Programmierung Klaus Becker 2003.

24
Konzepte der Konzepte der objektorientierten objektorientierten Programmierung Programmierung Klaus Becker 2003

Transcript of Konzepte der objektorientierten Programmierung Klaus Becker 2003.

Page 1: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

Konzepte der Konzepte der objektorientierten objektorientierten ProgrammierungProgrammierung

Klaus Becker2003

Page 2: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

2

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gObjektorientierungObjektorientierung

Paradigma; Denkstil; Philosophie

Grundkonzepte

...

Vere

rbu

ng

Poly

morp

hi

e

Ab

stra

kte

Kla

ssen

En

twu

rfsm

ust

er

Modellierungssprache: UML

Implementierung: Delphi, Java, ...

Page 3: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

3

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gTeil 1Teil 1

Vererbung

Page 4: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

4

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gKlassenvergleichKlassenvergleich

ChuckALuck Roulett

Klassen mit ähnlicher Struktur

Page 5: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

5

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gOberklasse „Zufallsgeraet“Oberklasse „Zufallsgeraet“

Page 6: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

6

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gUnterklasse „Wuerfel“Unterklasse „Wuerfel“

Page 7: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

7

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gAufgabeAufgabe

Ändern Sie das Chuck-A-Luck-Programm (z. B. ChuckALuck2) so ab, dass die Klasse Wuerfel eine Unterklasse der Klasse Zufallsgeraet darstellt.

Page 8: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

8

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gTeil 2Teil 2

Abstrakte Klassen

Polymorphie

Page 9: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

9

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gAbstrakte KlassenAbstrakte 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.

Page 10: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

10

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gPolymorphiePolymorphie

Polymorphie: Vielgestaltigkeit

Eine Operation (hier „werfen“) kann in Unterklassen ganz unterschiedlich ausgestaltet werden.

Page 11: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

11

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gChuck a Luck mit abstrakten WürfelnChuck a Luck mit abstrakten Würfeln

Zur Compilierzeit kann noch nicht festgelegt werden, wie die Operation „werfen“ ausgeführt wird.

Page 12: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

12

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gSpäte BindungSpäte Bindung

Erst zur Laufzeit steht fest, welche Objekte am Spiel beteiligt sind und damit, wie die Operation „werfen“ ausgeführt wird.

Page 13: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

13

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gAufgabeAufgabe

Erstellen Sie ein Chuck-A-Luck-Programm mit gezinkten Würfeln.

Page 14: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

14

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gTeil 3Teil 3

Beobachtermuster

Page 15: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

15

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gMVCMVC

model

view2

view1

?

?

Page 16: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

16

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gBisher: Koordinator-SituationBisher: Koordinator-Situation

Form1 als „Koordinator“:

Das Objekt Form1 setzt zunächst das Spiel in Gang und veranlasst anschließend die Ausgabe der relevanten Daten.

Page 17: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

17

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gZiel: Beobachter-SituationZiel: Beobachter-Situation

model

view1

view2

Informiert über eine Änderung Holt relevanten Daten

Page 18: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

18

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gBeobachter-SituationBeobachter-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).

Page 19: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

19

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gBeobachter-MusterBeobachter-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

Page 20: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

20

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gBeobachter-MusterBeobachter-Muster

Wuerfel:

- bei jeder Zustandsänderung (hier: werfen) wird die Operation notifyObservers aufgerufen

Page 21: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

21

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gBeobachter-MusterBeobachter-Muster

Observer:

- legt eine Aktualisierungsschnittstelle abstrakt fest

Page 22: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

22

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gBeobachter-MusterBeobachter-Muster

WuerfelBeobachter1:

- kennt das zu beobachtende Objekt (hier: Wuerfel-Objekt) Holt sich hier die anzuzeigenden Daten- kennt das zu informierende Anzeigeobjekt

Page 23: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

23

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gBeobachter in AktionBeobachter in Aktion

Page 24: Konzepte der objektorientierten Programmierung Klaus Becker 2003.

24

KB

Ob

jekto

rien

tiert

e P

rog

ram

mie

run

gLiteraturhinweiseLiteraturhinweise

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-kaiserslautern.de/Informatik/MVC/mvc.html (Unterrichtsmaterialien von K. Merkert)