Principalmente soy un desarrollador de interfaz de usuario web, pero me parece que su incomodidad intuitiva puede deberse menos a la transferencia de la instancia y más al hecho de que va un poco de procedimiento con ese controlador. ¿Debería su controlador estar sudando todos estos detalles? ¿Por qué incluso hace referencia a más de un nombre de otro objeto para reproducir audio?
En el diseño de POO, tiendo a pensar en términos de lo que es siempre verde y lo que es más probable que esté sujeto a cambios. El tema para cambiar cosas es lo que querrá colocar en sus cajas de objetos más grandes para que pueda mantener interfaces consistentes incluso cuando los jugadores cambian o se agregan nuevas opciones. O te encuentras con ganas de intercambiar objetos de audio o componentes al por mayor.
En este caso, su controlador debe identificar que existe la necesidad de reproducir un archivo de audio y luego tener una forma consistente / siempre verde de reproducirlo. El reproductor de audio, por otro lado, podría cambiar fácilmente a medida que la tecnología y las plataformas se alteren o se agreguen nuevas opciones. Todos esos detalles deberían estar debajo de la interfaz de un objeto compuesto más grande, IMO, y no debería tener que volver a escribir su controlador cuando cambian los detalles de cómo se reproduce el audio. Luego, cuando pasa una instancia de objeto con detalles como la ubicación del archivo en el objeto más grande, todo ese intercambio se realiza en el interior de un contexto apropiado donde es menos probable que alguien haga algo tonto con él.
Entonces, en este caso, no creo que la instancia de objeto que se está lanzando sea lo que te esté molestando. Es que el Capitán Picard está corriendo hacia la sala de máquinas para encender el núcleo de urdimbre, corriendo hacia el puente para trazar las coordenadas, y luego presiona el botón "punch-it" después de encender los escudos en lugar de simplemente decir "Toma nosotros al planeta X en Warp 9. Hazlo así ". y dejando que su tripulación resuelva los detalles. Porque cuando lo maneja de esa manera, puede ser el capitán de cualquier nave de la flota sin saber el diseño de cada nave y cómo funciona todo. Y esa es, en última instancia, la mayor victoria de diseño OOP a la que se puede disparar, IMO.