Facade
Architecture 🟢 JuniorDéfinition
Fournit une interface simplifiée a un sous-système complexe. Cache la complexité derrière une API unifiée et facile a utiliser.
Analogie
Le bouton 'démarrer' d'une voiture : un geste simple qui déclenche démarreur, injection, allumage.
Exemple de code
class OrderFacade {
async placeOrder(cart) {
await this.payment.charge(cart.total);
await this.inventory.reserve(cart.items);
await this.shipping.schedule(cart.address);
}
}
Cas d'usage
Simplifier l'utilisation d'un sous-système avec plusieurs classes interdépendantes.
Anti-pattern
Transformer la façade en God Object qui fait tout au lieu de déléguer.