Tag Archives: Factory

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.

Lire la suite »

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).

Lire la suite »

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.

Lire la suite »

Le Design Pattern Fabrique (Factory) en PHP

La fabrique (Factory en anglais) est avec le Singleton l’un des Design Patterns les plus aisé à comprendre et à mettre en œuvre.

Quelle problématique ?

L’objectif du modèle de conception Fabrique est de fournir un objet prêt à l’emploi, configuré correctement, en libérant le code client de toute responsabilité (choix de l’implémentation, configuration, instanciation, …).

Nous verrons au travers des exemples suivants que ce ne sont pas de simples constructeurs. Lire la suite »