Design-pattern-adapter-pattern
デザインパターン-アダプターパターン
アダプタパターンは、2つの互換性のないインターフェイス間のブリッジとして機能します。 このタイプの設計パターンは、2つの独立したインターフェースの機能を組み合わせた構造パターンの下にあります。
このパターンには、独立または互換性のないインターフェイスの機能を結合する単一のクラスが含まれます。 実際の例としては、メモリカードとラップトップ間のアダプタとして機能するカードリーダーの場合があります。 メモリカードをカードリーダーに差し込み、カードリーダーをラップトップに差し込み、ラップトップ経由でメモリカードを読み取れるようにします。
次の例では、オーディオプレーヤーデバイスはmp3ファイルのみを再生でき、vlcおよびmp4ファイルを再生できる高度なオーディオプレーヤーを使用するアダプターパターンの使用を示しています。
実装
_MediaPlayer_インターフェースと、_MediaPlayer_インターフェースを実装する具象クラス_AudioPlayer_があります。 _AudioPlayer_は、デフォルトでmp3形式のオーディオファイルを再生できます。
別のインターフェース_AdvancedMediaPlayer_と、_AdvancedMediaPlayer_インターフェースを実装する具象クラスがあります。 これらのクラスは、vlcおよびmp4形式のファイルを再生できます。
_AudioPlayer_を作成して、他の形式も再生できるようにします。 これを実現するために、_MediaPlayer_インターフェイスを実装し、_AdvancedMediaPlayer_オブジェクトを使用して必要な形式を再生するアダプタークラス_MediaAdapter_を作成しました。
_AudioPlayer_は、アダプタークラス_MediaAdapter_を使用して、目的の形式を再生できる実際のクラスを認識せずに、目的のオーディオタイプを渡します。 デモクラス_AdapterPatternDemo_は、_AudioPlayer_クラスを使用してさまざまな形式を再生します。
ステップ1
Media PlayerおよびAdvanced Media Playerのインターフェイスを作成します。
MediaPlayer.java
AdvancedMediaPlayer.java
ステップ2
_AdvancedMediaPlayer_インターフェイスを実装する具体的なクラスを作成します。
VlcPlayer.java
Mp4Player.java
ステップ3
_MediaPlayer_インターフェイスを実装するアダプタークラスを作成します。
MediaAdapter.java
ステップ4
_MediaPlayer_インターフェイスを実装する具体的なクラスを作成します。
AudioPlayer.java
ステップ5
AudioPlayerを使用して、さまざまな種類のオーディオ形式を再生します。
AdapterPatternDemo.java
ステップ6
出力を確認します。