0

CoreData と mogenerator を使用して、適切なレベルの抽象化を使用しようとしています。私のアプリは、さまざまなソースからのさまざまな種類のメディア ファイル (ビデオとオーディオ) の検索、ダウンロード、および再生を扱っています。各メディア ファイルには、さまざまなレベルのメタデータと、さまざまなダウンロード/再生方法があります。すべてのメディア ファイルに対して最小限のメタデータ (名前、作成者など) とメソッド (ダウンロード、再生、停止など) を持つ IMediaObject というプロトコルを作成しました。私の具体的なクラスは、このプロトコルに準拠し、NSManagedObject から継承し、CoreData で使用され、mogenerator で作成/変更されます。

2 つの質問:

  • ここでインターフェイスのプロトコルを使用してトラックから外れていますか?

  • Core Data のメディア ファイルの種類 (ITunesPodcast、VimeoVideo、TumblrMP4 など) ごとに具体的なクラスを作成する必要がありますか? これらの実装の詳細は異なりますか? それとも、Core Data に対して単一の MediaObject 具象クラスを使用し、プロパティを使用して各メディア タイプの違いを説明する必要がありますか?

前もって感謝します

4

1 に答える 1

0

エリック、

プロトコルは、異なるクラスから共通の一連の動作を公開するために使用されます。継承も同様のことを行います。一般的な現代の OOP の正統性は、継承よりもプロトコルの使用を好むことです。(なぜですか? 継承は、アプリの開発とメンテナンスのライフ サイクル全体にわたる厳格なメカニズムです。YMMV。)

あなたの場合、各メディア タイプの一般的なメタデータ名/動作の重複がほとんどない場合は、プロトコルがおそらく優先パスです。

アンドリュー

于 2012-12-06T12:44:43.763 に答える