過去数週間にわたって、PubSub や Singleton などのトレンドのデザイン パターンのいくつかを共有してきました。今日は、このシリーズのもう 1 つの記事を共有するつもりですが、以下にコメントして、次にどのデザイン パターンを取り上げるべきか教えてください。
アダプター パターンは、互換性のないインターフェイスを持つオブジェクトの連携を可能にする構造設計パターンです。これは、ソース コードを変更せずに既存のクラスを他のクラスと連携させたい場合によく使用されます。このパターンは、既存のクラスのインターフェイスが必要なインターフェイスと一致しない場合に特に便利です。
実際の例を考えてみましょう。あなたは、サードパーティのビデオ プレーヤーをアプリケーションに統合する任務を負っています。ただし、ビデオ プレーヤーの機能は異なり、アプリケーションが期待するものとは異なるメソッド インターフェイスを持っています。この場合、アダプター パターンを使用してビデオ プレーヤーのラッパー クラスを作成し、サードパーティのコードを既存のアプリケーション コードと互換性を持たせることができます。
この場合に使用するコードは次のとおりです:
// Adapter class class VideoPlayerAdapter { constructor() { this.externalPlayer = new ThirdPartyVideoPlayer({ // some configuration }); } play() { const video = this.externalPlayer.getVideo(); this.externalPlayer.playVideo(video, { // additional parameters }); } } // Your application code class Application { constructor() { this.videoPlayer = new VideoPlayerAdapter(); } start() { // Play video using your application code this.videoPlayer.play(); } }
上記のコードを分解してみましょう:
この方法では、Application クラスは ThirdPartyVideoPlayer の動作について何も知る必要がありません。 ThirdPartyVideoPlayer を別のライブラリに置き換える必要がある場合は、新しいアダプターを作成するだけで済みます。Application クラスは同じままで構いません。これがアダプタ パターンの主な利点です。つまり、アプリケーション コードをサードパーティ ライブラリの詳細から切り離します。
アダプター パターンとファサード パターンは似ているように見えるかもしれませんが、異なる目的を果たし、異なるコンテキストで使用されます。
要約すると、どちらのパターンも既存のコードを操作する方法を提供しますが、アダプター パターンはインターフェイスの互換性に焦点を当てているのに対し、ファサード パターンは複雑なシステムとの対話を簡素化することに重点を置いています。
それでは、ここにいらっしゃる間、次回の 8 月の Superthis にご参加ください。
このリモート イベントでは、リアルタイム コミュニケーション ツールを使用して仮想インタラクションを変革するという課題に取り組み、スキルと創造性を披露する機会が得られます。 SuperViz を利用すると、賞金 5,000 ドルを獲得するチャンスがあります。
今すぐ登録して最新情報、ヒント、リソースを受け取り、ハッキングの準備をしましょう!
以上がデザインパターン # アダプターパターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。