Facade
Contexte : Fournir une interface unifiée à un ensemble d’interfaces d’un sous‑système. Facade définit une interface de plus haut niveau qui rend le sous‑système plus facile à utiliser.
public class SubsystemA { public void A1() { } }public class SubsystemB { public void B1() { } }public class SubsystemC { public void C1() { } }
public class Facade{ private SubsystemA _a = new(); private SubsystemB _b = new(); private SubsystemC _c = new(); public void Operation() { _a.A1(); _b.B1(); _c.C1(); }}Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Système de traitement des commandes : Une OrderFacade appelle les sous‑systèmes d’inventaire, de paiement, d’expédition et de notification dans le bon ordre, masquant la complexité au client.
Exemple : Dans .NET, HttpClient fournit une façade sur les composants de socket, DNS et TLS de bas niveau. De même, DbContext dans EF Core est une façade sur les objets de connexion, commande et transaction.