Idepa
(2015)
Hogeschool Leiden
Anton Steenvoorden
s1087187
[THE STRATEGY PATTERN]
In dit document omschrijf ik het gebruik van de strategy design pattern.
, Context
We willen een DuckSimulator maken met daarin een aantal verschillende eenden.
De eenden moeten kunnen kwaken vliegen zwemmen en zichzelf laten zien. Ook willen we het type
gedrag kunnen wijzigen tijdens Run Time.
display(), quack(), swim(), fly()
Probleemstelling
Met een superclass met daarin al deze methodes ontstaat een probleem.
Overerving levert problemen op bij meerdere subclasses die niet alle functies nodig hebben.
Hierdoor moeten subclasses de methodes in de superclass constant Overriden. Ook is het niet
mogelijk om het behaviour te veranderen tijdens Run Time, omdat deze vast staat gedefinieerd in de
code .
In de methodes quack en fly in RubberDuck en DecoyDuck staat nu omschreven dat de rubberduck
piept in plaats van kwaakt, en de DecoyDuck helemaal geen geluid maakt. En bij fly() doen ze beide
niets.
(2015)
Hogeschool Leiden
Anton Steenvoorden
s1087187
[THE STRATEGY PATTERN]
In dit document omschrijf ik het gebruik van de strategy design pattern.
, Context
We willen een DuckSimulator maken met daarin een aantal verschillende eenden.
De eenden moeten kunnen kwaken vliegen zwemmen en zichzelf laten zien. Ook willen we het type
gedrag kunnen wijzigen tijdens Run Time.
display(), quack(), swim(), fly()
Probleemstelling
Met een superclass met daarin al deze methodes ontstaat een probleem.
Overerving levert problemen op bij meerdere subclasses die niet alle functies nodig hebben.
Hierdoor moeten subclasses de methodes in de superclass constant Overriden. Ook is het niet
mogelijk om het behaviour te veranderen tijdens Run Time, omdat deze vast staat gedefinieerd in de
code .
In de methodes quack en fly in RubberDuck en DecoyDuck staat nu omschreven dat de rubberduck
piept in plaats van kwaakt, en de DecoyDuck helemaal geen geluid maakt. En bij fly() doen ze beide
niets.