Le Design Pattern Stratégie (Strategy) en PHP

Continuons notre tour d’horizon des Modèles de Conception avec cette fois l’étude de la Stratégie, modèle qui vise à permettre le choix d’un algorithme dédié à une tâche particulière au moment de l’exécution.

Dans l’exemple, nous allons utiliser l’autoloader universel réalisé précédemment pour lui adjoindre la possibilité de détecter les espaces de nom.

J’en profite pour remercier Gabriel pour ses commentaires sur le sujet, commentaires qui ont initiés l’idée de ce même article.

Continuer la lecture

Le Design Pattern chaîne de responsabilités (Chain of Responsability) en PHP

La chaine de responsabilité est un Modèle de Conception qui adresse un problème de modularité, de couplage souple.

Ici, nous allons disposer d’une collection d’objet en mesure de traiter le problème, sans savoir à priori lequel sera le bon.
Continuer la lecture

Le Design Pattern Itérateur (Iterator) en PHP

On dit souvent que les Modèles de Conception sont la prose de l’informatique : Tout le monde les utilise sans le savoir. C’est souvent le cas et c’est particulièrement vrai avec les Itérateurs.

Que permettent les Itérateurs ? Les Itérateurs permettent simplement de parcourir un objet, un peu comme on parcours un tableau avec une boucle for.

Dans de nombreux langages il existe des interfaces Iterator, Iterable, … Continuer la lecture

Le Design Pattern Decorateur (Decorator) en PHP

Le décorateur est un Modèle de Conception relativement proche de l’Adaptateur, bien qu’il ne serve pas les mêmes objectifs.

Comme l’adaptateur, le décorateur va agréger l’objet décoré. Le but n’est toutefois pas ici d’adapter le fonctionnement de l’objet décoré, mais d’en étendre les possibilités. C’est un peu comme de l’héritage…. mais sans passer par de l’héritage (nous reviendrons dessus plus loin). Continuer la lecture