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

N’utilisez pas les Design Patterns en PHP

N’utilisez jamais les Modèles de Conception, mais connaissez-les, maîtrisez-les !

Sous ce titre accrocheur (désolé) se cache tout de même un vrai conseil qui découle d’expériences malheureuses de développeurs enthousiastes ayant voulu se faire la main après une formation aux Patterns…. avec souvent pour résultat une conception trop lourde pour les besoins réels.

Ainsi, ne cherchez jamais à utiliser les Design Pattern, n’essayez pas de les inclure dans votre conception et surtout n’essayez pas de refactoriser votre code grâce à ces derniers sous prétexte d’en améliorer la souplesse future.

Par contre, étudiez les, comprenez les, relisez les, pensez à eux et accordez leur de l’attention.

Continuer la lecture