Ich bin in erster Linie ein Web-UI-Entwickler, aber für mich scheint es, als würde sich Ihr intuitives Unbehagen weniger auf den Durchgang der Instanz als vielmehr auf die Tatsache auswirken, dass Sie mit diesem Controller ein wenig prozedural vorgehen. Sollte Ihr Controller all diese Details ins Schwitzen bringen? Warum verweist es sogar auf mehr als einen Objektnamen, um Audio abzuspielen?
Beim OOP-Design denke ich eher darüber nach, was immer grün ist und was sich mit größerer Wahrscheinlichkeit ändert. Das Thema, das geändert werden muss, ist das, was Sie in Ihre größeren Objektboxen einfügen möchten, damit Sie konsistente Benutzeroberflächen beibehalten können, selbst wenn sich die Spieler ändern oder neue Optionen hinzugefügt werden. Oder Sie möchten Audioobjekte oder -komponenten im Großhandel austauschen.
In diesem Fall muss Ihr Controller erkennen, dass eine Audiodatei abgespielt werden muss, und dann über eine konsistente / immergrüne Methode verfügen, um sie abzuspielen. Das Audioplayer-Zeug auf der anderen Seite könnte sich leicht ändern, wenn Technologie und Plattformen geändert oder neue Auswahlmöglichkeiten hinzugefügt werden. All diese Details sollten sich unter der Oberfläche eines größeren zusammengesetzten Objekts, IMO, befinden, und Sie sollten Ihren Controller nicht neu schreiben müssen, wenn sich die Details der Audiowiedergabe ändern. Wenn Sie dann eine Objektinstanz mit Details wie dem Speicherort der Datei an das größere Objekt übergeben, wird alles, was ausgetauscht wird, im Inneren eines geeigneten Kontexts ausgeführt, in dem es weniger wahrscheinlich ist, dass jemand etwas Dummes damit macht.
Also in diesem Fall denke ich nicht, dass es diese Objektinstanz ist, die herumgeworfen wird, die dich nerven könnte. Captain Picard rennt zum Maschinenraum, um den Warpkern einzuschalten, rennt zurück zur Brücke, um die Koordinaten zu zeichnen, und drückt dann nach dem Einschalten der Schilde den "Punch-It" -Knopf, anstatt einfach "Take" zu sagen uns zu Planet X bei Warp 9. Mach es so. " und seine Crew die Details aussortieren lassen. Denn wenn er damit umgeht, kann er jedes Schiff in der Flotte steuern, ohne das Layout jedes Schiffs zu kennen und zu wissen, wie alles funktioniert. Und das ist letztendlich der größte OOP-Design-Gewinn, für den es zu drehen gilt, IMO.