Home

Compositepatroon

Het compositepatroon (Composite) is een structureel ontwerppatroon uit de objectgeoriënteerde softwareontwikkeling. Het maakt deel-geheel hiërarchieën mogelijk en laat clients objecten en samenstellingen van objecten op dezelfde manier behandelen. Hiermee kunnen complexe boomachtige structuren worden opgebouwd en doorlopen als één uniform geheel.

Het patroon introduceert een Component-interface met gemeenschappelijke operaties die zowel individuele objecten (Leaf) als samenstellingen (Composite)

Gedrag: clients voeren operaties uit op Component. Composites verspreiden de operatie naar hun kinderen en kunnen

Toepassingen: grafische gebruikersinterfaces, bestandssystemen, of elke situatie waarin een boom Structuur van objecten wordt gemanaged. Voordelen

Varianten en gerelateerde patronen: Vaak wordt het patroon gecombineerd met de Visitor om operationele logica te

Voorbeeld (conceptueel): een grafische tekenapplicatie waarin zowel eenvoudige vormen als groepen vormen implementeren via Component; een

implementeren.
Leaf
vertegenwoordigt
eindpunten
zonder
kinderen,
terwijl
Composite
containers
van
Component-objecten
kan
bevatten
en
zelf
ook
de
operaties
kan
doorgeven
aan
zijn
kinderen.
zelf
aanvullende
logica
bevatten.
Het
patroon
maakt
recursieve
bewerkingen
mogelijk,
zoals
tekenen,
tellen,
of
uitvoeren
van
acties
over
hele
bomen,
zonder
onderscheid
te
maken
tussen
eenvoudige
en
samengestelde
objecten.
zijn
uniformiteit
bij
bewerkingen
op
objecten
en
samenstellingen,
eenvoudige
uitbreiding
en
minder
client-specifieke
code.
Nadelen
omvatten
extra
complexiteit
en
de
mogelijkheid
dat
logica
te
generiek
wordt,
waardoor
fouten
ontstaan
bij
onduidelijke
hiërarchieën.
scheiden,
of
met
Decorator
om
eigenschappen
toe
te
voegen.
Er
zijn
twee
varianten:
de
transparante
variant,
waarbij
Component
alle
operationele
methoden
exposeert,
en
de
veilige
variant,
waarbij
alleen
Composite
extra
bewerkingen
aanbiedt
via
een
aparte
interface.
groep
kan
worden
behandeld
als
een
vorm
en
kan
ook
op
zijn
groepoperaties
reageren.