Dato un API di terze parti con un oggetto molto macchinoso con molte responsabilità diverse - decidiamo di avvolgere usando oggetti piccoli, gestibili, a responsabilità singola. Questo è il schema del gateway (credo).
Quindi ogni volta che lo fai ci sarà una sorta di "connessione" in cui dovrai connetterti alla risorsa. Inoltre, chiamare applicazioni potrebbe voler mantenere aperta una singola connessione e usarla con più oggetti (quelli piccoli, gestibili, a responsabilità singola che abbiamo creato).
Quale forma dovrebbe assumere questa connessione? Questa connessione dovrebbe essere un altro oggetto? Dovrebbe essere passato al costruttore dei piccoli oggetti wrapper? O, dovrebbero gli oggetti wrapper ereditare da un oggetto di connessione? O aggregarlo?
E il caso speciale in cui possiamo avere solo una connessione per applicazione?