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