13
Design Patterns Berry Langerak PFZ.nl workshopdag 11 februari 2012

Design patterns

Embed Size (px)

Citation preview

Design Patterns

Berry Langerak

PFZ.nl workshopdag 11 februari 2012

Berry Langerak

Werkt voor Ayavo B.V. als technische man. Voorzitter van PFZ.nl. Event manager voor PFZ.nl. 10 jaar ervaring in PHP, waarvan 8 in OO.

Design Patterns

Abstracte oplossingen voor abstracte problemen.

Gaaf, maar gebruik met mate en verstand. Je moet wel een probleem hebben om op te

lossen.

Eerst; 3 vragen.

Hebben jullie OO ervaring?

Hebben jullie concrete problemen?

Wat willen jullie leren?

Strategy pattern

Stiekem gewoon polymorpisme at runtime.

Gedrag (drastisch) aan te passen.

Doet me denken aan legoblokjes.

<<Implements>>

Context

ContextInterface()

Strategy

<<interface>>

AlgorithmInterface()

ConcreateStrategyA

<<implementation>>

AlgorithmInterface()

ConcreateStrategyB

<<implementation>>

AlgorithmInterface()

Containment

<<Implements>>

Singleton

Echt zo niet handig. Testen jullie wel

eens? Voor de volledigheid,

dan. Het koppelt

implementatie aan interface.

Observer pattern

Observer “kijkt” naar wijzigingen van een subject.

Handig om gedrag toe te voegen, zonder object aan te passen.

Werkt vaak heel prettig voor plugins.

Chain-of-responsibility pattern

Gedrag definiëren door middel van een “ketting van objecten”.

Handig om gedrag te kunnen hergebruiken.

Adapter pattern

Verloopstukje, ongeveer. Als een interface niet aansluit, gebruik je een adapter.

Erg handig om verschillende libraries “aan elkaar te knopen”.

Model View Controller

Als jij het vraagt, geef ik het wel door.

Scheiden van verantwoordelijkheden.

Eigenlijk door ieder framework gebruikt.

Niet altijd even handig?