Category Archives: Design Pattern

Le Design Pattern Annuaire de services (Service Locator) en PHP

Le motif de conception Service Locator fait parti des patterns qui promulguent le principe d’inversion de contrôle, aussi connu sous le nom du « principe d’Hollywood » (Ne nous appelez pas, on vous rappellera).

Le Service Locator est un composant (souvent réalisé sous la forme d’un Registre) configuré pour distribuer des services aux autres objets.

Ce que l’on cherche à éviter est qu’un objet A ait besoin d’instancier lui même un objet B pour remplir son contrat en tant qu’objet A.

J’avoue n’avoir jamais rencontré de traduction française pour ce modèle de conception, je prendrais donc la liberté de le dénommer « Annuaire de services » qui me semble à propos.

Pour notre exemple, nous allons réaliser une classe de Log sans et avec ce principe.

Le Design Pattern Monteur (Builder) en PHP

Le monteur (builder) est un modèle de conception souvent mal compris, confondu avec d’autres patterns de type construction.

L’objectif du monteur est de séparer le processus de construction de l’objet de sa représentation finale. En d’autres termes, cela signifie que le processus de construction est identique mais que le produit finit peut varier.

Le Design Pattern Registre (Registry) en PHP

Le Registre est un design pattern décrit dans l’excellent livre de Martin Fowler, Patterns of Enterprise Application Architecturecommunément désigné sous le terme PoEAA (Pas de traduction française).

La définition du registre est simple : c’est un objet « bien connu » qui permet aux autres de récupérer d’autres objets ou services.

Nous allons voir ici deux implémentations courantes du Registre en PHP.

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.

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