STRUCTURAL
Bridge
Separare un'astrazione dalla sua implementazione in modo che possano variare indipendentemente.
Esempi di Codice
Bridge per Dispositivi e Telecomandi
Separazione tra dispositivi (TV, Radio) e telecomandi (Base, Avanzato).
JAVASCRIPT
Loading...
Esempi nel Mondo Reale
GUI frameworks - separazione tra widget e rendering engine (Windows/Linux/Mac)
Database drivers - separazione tra API e implementazione specifica del DB
Dispositivi e controller - telecomandi, stampanti, dispositivi IoT
Messaging systems - separazione tra sender/receiver e protocollo (SMTP, SMS, Push)
Quando Usarlo
Quando vuoi evitare un legame permanente tra astrazione e implementazione
Quando sia astrazione che implementazione devono essere estensibili tramite sottoclassi
Quando cambiamenti nell'implementazione non devono impattare i client
Quando hai una proliferazione di classi dovuta a combinazioni multiple
Quando NON Usarlo
Quando hai una sola implementazione
Quando l'astrazione e implementazione sono strettamente accoppiate
Quando la complessità aggiunta non è giustificata
Pattern Correlati