06 - seeren-training/Design-Pattern GitHub Wiki

Prototype

  • 🔖 Définition
  • 🔖 Implémentation

📑 Définition

Le modèle de prototype est un modèle de conception de création dans le développement de logiciels. Il est utilisé lorsque le type d'objets à créer est déterminé par une instance prototypique, qui est clonée pour produire de nouveaux objets.

image

Ce modèle est utilisé pour :

  • Evitez les sous-classes d'un créateur d'objet dans l'application cliente, comme le fait le modèle de méthode d'usine.
  • Eviter le coût inhérent à la création d'un nouvel objet de manière standard (par exemple, en utilisant le mot-clé 'new') lorsqu'il est prohibitif pour une application donnée.

📑 Implémentation

Protptype

abstract class Prototype
{
    abstract public function __clone();
}

class NissanCar extends Prototype
{

    private int $puissance;

    public function __construct() {
      $this->puissance = 0;
    }

    public function addPuissance(): int
    {
      return $this->puissance += 1;
    }

    public function __clone()
    {
      $this->__construct();
    }
}

Utilisation

$carA = new NissanCar();
$carA->addPuissance();
$carA->addPuissance();
$carB = clone $carA;
$carB->addPuissance();