1

私たちのシステムでは、クライアントが自分のアカウントを youtube、vimeo、facebook、myspace などのさまざまなソーシャル メディア サイトにリンクすることを望んでいます。

ユーザーに提供したい利点の 1 つは、ユーザーがサイトにアップロードしたファイルを転送、更新、削除し、上記のソーシャル メディア サイトに転送することです。このファイルは、ビデオ、画像、またはオーディオである可能性があります。

これらのサイトはすべて共通のプロセス (認証、接続、API を使用してファイルを転送/編集/削除する) を共有しているため、戦略パターンの使用について考え始めましたが、すぐに、私が望むように機能しない可能性があることに気付きました。各サービスに固有の拡張機能の一部を使用します (例: YouTube ビデオをチャンネルに関連付ける、Facebook の特定のアルバムに画像をアップロードするなど...)

私の質問は、このシナリオで使用するのに最適な構造設計パターンは何ですか?

4

1 に答える 1

1

ユーザーを接続しようとするサービスを次のようなグループに実際に分割します。

  • ビデオ サービス
  • 写真サービス
  • IMサービス等

グループごとに、実装する共通のインターフェースを持つことができます。もちろん、各ソーシャル メディア サイトは複数のインターフェイスを持つことができます。また、これらのインターフェイスに特別な拡張ポイントを追加して、各サイトに固有のものを再利用できるようにします。

たとえば、標準形式では、次のメソッドを使用します。

videoService.upload(chanel, playlist, file) 

サイトが共通のインターフェイスに入れることができない特別なものをサポートしている場合は、拡張プロパティを使用して呼び出します。

if (videoService.getSiteName() == "YouTube") {
   videoService.upload(chanel, playlist, file, extendedProperties) 
}
于 2010-03-31T17:09:08.087 に答える