Design Patterns: Adapter en PHP

Adapter est un design pattern structurelle qui permet aux objets incompatibles de collaborer.

Adapter agit comme un adaptateur entre deux objets. Il intercepte les appels pour un objet et les transforme au format et à l’interface reconnaissables par le deuxième objet.
 
 

Exemple :

Dans cet exemple, nous avons la classe Car qui a une méthode getName() et getModel(). Le client attend la méthode getNameAndModel(). Pour « adapter » Car pour le code client, nous avons une classe Adapter appelée CarAdapter, qui prend une instance de Car et utilise les méthodes getName() et getModel() dans sa propre méthode getNameAndModel().

<?php

class Car {
    private $name;
    private $model;
    function __construct($name_in, $model_in) {
        $this->name = $name_in;
        $this->model  = $model_in;
    }
    function getName() {
        return $this->name;
    }
    function getModel() {
        return $this->model;
    }
}

class CarAdapter {
    private $car;
    function __construct(Car $car_in) {
        $this->car = $car_in;
    }
    function getNameAndModel() {
        return $this->car->getName().' & '.$this->car->getModel();
    }
}

// client code
$car = new Car("Audi", "A7");
$carAdapter = new CarAdapter($car);
print('Name and Model: '.$carAdapter->getNameAndModel()."<br>");

?>

 
Sortie:

Name and Model: Audi & A7

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.