Bridge
Architecture 🔴 SeniorDéfinition
Découplé une abstraction de son implémentation pour qu'elles puissent varier indépendamment. Évite l'explosion combinatoire de sous-classes.
Analogie
Une télécommande universelle : la télécommande (abstraction) fonctionne avec n'importe quelle TV (implémentation).
Exemple de code
class Notification {
constructor(sender) { this.sender = sender; }
send(msg) { this.sender.deliver(msg); }
}
// new Notification(new SmsSender()).send('Hi');
Cas d'usage
Quand deux dimensions de variation (ex: forme + couleur) génèrent trop de sous-classes.
Anti-pattern
Hériter pour chaque combinaison : RedCircle, BlueCircle, RedSquare...