Le Design Pattern Poids Mouche (Flyweight) en PHP

Suite à la rédaction d’un billet sur le sujet par Jean-François LÉPINE, j’ai décidé de publier plus vite que prévu l’article sur le modèle de conception « Poids Mouche » pour re-préciser son utilisation et sa définition.

Modèle du Poids Mouche

Qu’est-ce que le Poids mouche, quel est son objectif ?
L’objectif du poids mouche est de réduire la consommation mémoire d’un programme, en partageant des instances d’un même objet (souvent des « Value Objects ») fréquemment utilisés.

Continuer la lecture

Design Pattern Observateurs / Observables Vs Publish / Subscribe en PHP

Les observateurs font parti des Modèles de Conception qui visent à limiter la dépendance entre les objets. L’objectif est de permettre à un ou plusieurs objets de réagir aux messages d’autres objets, sans qu’ils ne soient connus à l’avance, sans devoir les lier « en dur » dans le code.

Nous verrons également dans ce billet le concept de Publication / Abonnement (Publish / Subscribe), concept dont l’implémentation peut être menée à bien par un système d’Observateur / Observable, sans que cela signifie que ces deux appellations soient équivalentes (comme on pourrait le penser à tord en parcourant le web).

Continuer la lecture

Le Design Pattern patron de méthode (Template Method) en PHP

Dans cet article nous allons aborder une autre prose de la programmation objet : le modèle de conception « Patron de méthode » (Template method).

Ce pattern (fréquemment utilisé dans les classes abstraites) propose de développer un algorithme basé sur des primitives que l’on trouvera uniquement dans les classes filles.

Dans notre exemple nous allons développer un système de validation de données basique qui met en avant ce modèle.

Continuer la lecture

Les Design Patterns Singleton, Multiton et Alternatives en PHP

Récemment, j’ai exposé l’un des Modèles de Conception les plus répandu, le décrié Singleton.

Décrié car comme souligné dans mon article précédent, le Singleton souffre de sa simplicité de compréhension et de mise en oeuvre qui incite à l’utiliser aveuglément..

Le billet propose de faire un point sur ce modèle de conception et ses alternatives, avec comme d’habitude des exemples appliqués en PHP.

Continuer la lecture

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