Tag Archives: Couplage faible

De l’usage des méthodes statiques

Suite à ma précédente introduction à Domain Driven Design, une critique négative sur l’usage des services statiques (en PHP ou non)a fait réagir un lecteur. Ce dernier soulève une question légitime : « en quoi l’usage des classes de services statiques est à éviter ? »

Un service statique ?

Tout d’abord, rappelons d’un point de vue technique ce que sont les méthodes statiques :

<?php
class ClassDeServiceStatique
{
    public static function unServiceStatique () 
    { 
        //L'usage de $this est prohibé
        //calculs ne nécessitant pas de contexte
        return "resultat";
    }
}

Une classe de service statique est une classe qui regroupe ses règles métiers dans une collection de méthodes exclusivement statiques (utilisant le mot clef static), donc qui n’utilise ni ne s’appuie sur une quelconque information de contexte (un état).

Lire la suite »

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.

Lire la suite »