13 - seeren-training/Design-Pattern GitHub Wiki

Facade

  • 🔖 Définition
  • 🔖 Implémentation

📑 Définition

La façade a pour but de cacher une conception et une interface complexe difficile à comprendre.

image

La façade permet de simplifier cette complexité en fournissant une interface simple du sous-système. Habituellement, la façade est réalisée en réduisant les fonctionnalités de ce dernier, mais en fournissant toutes les fonctions nécessaires à la plupart des utilisateurs.


📑 Implémentation

Sous système

class CPU
{
  public function freeze(): void {}
}

class HardDrive
{
  public function execute()): void {}
}

class Memory
{
  public function load(): void {}
}

Facade

class ComputerFacade
{
	
  private CPU $cpu;

  private Memory $memory;

  private HardDrive $hardDrive;

  protected function __construct()
  {
    (new CPU())->freeze();
    (new Memory())->load();
    (new HardDrive())->execute();
  }

}

Utilisation

new ComputerFacade();