次のような状況での設計パターンまたは戦略についてアドバイスをいただければ幸いです。
メディアのキューを指定して、適切なプレーヤーを提示するコントローラー クラスがあります。メディアは、ビデオ、オーディオ、またはその他の場合があります。各メディア タイプには対応するプレーヤー タイプがあり、各プレーヤーは再生、一時停止、停止などのメソッドを定義する共通のプロトコルを実装します。コントローラ クラスは現在のプレーヤーへの参照を保持する必要がありますが、そのプレーヤーはいくつかのタイプの 1 つかもしれません。 . 1 つの考えは、id タイプを使用して参照を保持することです。
@property id currentPlayer;
または、スーパークラス Player を作成し、各プレーヤー タイプをサブクラス Player にすることもできます。
@interface VideoPlayer : Player
次に、コントローラー クラスで、Player クラスへの参照を保持し、必要に応じて特定の型にキャストできます。
@property Player *currentPlayer;
どちらのオプションも私には間違っているように見えるので、これを実装するのに役立つ設計パターンまたはその他のより良い戦略があるかどうか疑問に思います。Cocoa または Objective-C の例は特に役に立ちます - ありがとう。