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

Her fortsættes behandlingen af Composite designmønstret

Det generelle strukturdiagram for Composite designmønstret. Det er værd at bemærke, at strukturen som er vist generelt definerer et træ, hvor Composite objekter er de indre knuder, og hvor Leaf objekter (som navnet antyder) er blade

Konsekvenser:

  • Når der opereres på et Composite-objekt opereres der 'automatisk' på alle del-objekter

  • Klienter af Component opnår et homogent syn på sammensatte og atomare objekter

  • Klienten skal ikke bekymre sig om andet end helhedsobjektets operationer

  • Det er et problem at understøtte add, delete og getchild på atomare Leaf objekter

Man kan spørge sig selv om, hvorfor det er et problem at understøtte metoder add, delete og getchild på Leaf objekter. Disse operationer nedarves naturligivs fra Component klassen. Problemet er imidlertid, at de ikke giver mening på Leaf objekter; Et Leaf objekt er et terminalt Component objekt, og er som sådan karakteriseret af at det ikke kan have 'børn'.