Facade
Architecture 🟢 JuniorDefinition
Fournit une interface simplifiee a un sous-systeme complexe. Cache la complexite derriere une API unifiee et facile a utiliser.
Analogie
Le bouton 'demarrer' d'une voiture : un geste simple qui declenche demarreur, 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-systeme avec plusieurs classes interdependantes.
Anti-pattern
Transformer la facade en God Object qui fait tout au lieu de deleguer.