Sono principalmente uno sviluppatore dell'interfaccia utente Web, ma a me sembra che il tuo disagio intuitivo potrebbe essere meno relativo al pass-through dell'istanza e più al fatto che stai procedendo in modo un po 'procedurale con quel controller. Il tuo controller dovrebbe sudare tutti questi dettagli? Perché fa riferimento anche a più del nome di un altro oggetto per ottenere l'audio riprodotto?
Nel design OOP, tendo a pensare in termini di ciò che è sempreverde e che è più probabile che sia soggetto a cambiamenti. L'argomento per cambiare le cose è quello che vorrete inserire nelle caselle degli oggetti più grandi in modo da poter mantenere interfacce coerenti anche quando i giocatori cambiano o vengono aggiunte nuove opzioni. Oppure ti ritrovi a voler scambiare oggetti audio o componenti al loro interno all'ingrosso.
In questo caso, il controller deve identificare che è necessario riprodurre un file audio e quindi avere un modo coerente / sempre verde di riprodurlo. Le cose del lettore audio, d'altro canto, potrebbero facilmente cambiare via via che la tecnologia e le piattaforme vengono alterate o vengono aggiunte nuove opzioni. Tutti questi dettagli dovrebbero essere posti sotto un'interfaccia di un oggetto composito più grande, IMO, e non dovresti dover riscrivere il controller quando i dettagli di come viene riprodotto l'audio cambiano. Quindi, quando passi un'istanza di un oggetto con i dettagli come la posizione del file nell'oggetto più grande, tutto ciò che si scambia è fatto all'interno di un contesto appropriato in cui qualcuno ha meno probabilità di fare qualcosa di stupido con esso.
Quindi, in questo caso, non penso che sia l'istanza di oggetto che viene gettata in giro che potrebbe infastidirti. È che il Capitano Picard sta correndo alla sala macchine per accendere il nucleo di curvatura, correre di nuovo sul ponte per tracciare le coordinate, e poi colpire il pulsante "punch-it" dopo aver acceso gli scudi piuttosto che semplicemente dire "Prendi noi al pianeta X a Warp 9. Fallo così. " e lasciando che il suo equipaggio risolva i dettagli. Perché quando lo gestisce in questo modo, può comandare qualsiasi nave nella flotta senza conoscere la disposizione di ogni nave e come tutto funzioni. E questo è in definitiva il più grande successo di progettazione OOP, IMO.