Lecture overview -- Keyboard shortcut: 'u'  Previous page: Command (3) -- Keyboard shortcut: 'p'  Next page: Decorator (2) -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 23 : 31
Forelæsningsnoter i Objekt-orienteret Programmering
Designmønstre
Decorator (1)

Decorator er et designmønster hvormed vi dynamisk kan 'udvide et objekt' med nye egenskaber.

Tilføjer egenskaber til et objekt på en dynamisk basis i modsætning til statisk udvidelse af en klasse via nedarvning

Statisk set kan vi tilføje nye egenskaber ved at lave en udvidelse (ved brug af nedarvning mellem klasser). Men dette virker ikke dynamisk, på eksisterende objekter. Ideen bag Decorator er at understøtte udvidelse af eksisterende objekter, på 'run time'.

Et prototypisk eksempel på Decorator designmønstret, hvor en tekst dekoreres med ramme og scrollbar. Kæden af objekter, hvor de forreste to dekorerer text view objektet. Når der opereres på aBorderDecorator tegnes kanten, hvorefter aScrollDecorator tilsendes samme besked. Når der opereres på aScrollDecorator tegnes scroll bars, hvorefter aTextView sendes samme besked. Når der opereres på aTextView tegnes det tekstuelle syn på objekter (det egentlige arbejde)

Decorator mønstret er et meget mere fleksibelt alternativ til en statisk løsning med udvidelse via nedarvning