
you are here
239
7
章
Adapter
パターンと
Facade
パターン
既存のソフトウェアシステムに新しいベンダーのクラスライブラリを組み込む必要がある
のですが、新しいベンダーのインタフェース設計が昔のベンダーのものとは異なっています。
オブジェクト指向アダプタ
この問題を解決するために、既存コードを変更したくはありません(しかも、ベンダーの
コードは変更できません)。では、どうしますか?
新しいベンダーのインタフェースを既存シ
ステムに必要なインタフェースに適合させるクラスを書けばいいのです。
アダプタは、クライアントからのリクエストを受け取ってベンダーのクラスが理解できる
ようなリクエストに変換することで、仲介役として働きます。
アダプタ
ベンダー
クラス
既存システム
ベンダー
クラス
既存システム
ベンダーのインタフェースが、これまでコードを書くのに
使ってきたインタフェースと一致しません。これでは動作
しません!
アダプタは、ベンダーのクラスが
求めているインタフェースを実
装します。
ベンダーのインタフェースとやり取り
し、リクエストを処理します。
コード変更なし
コード変更なし
新しいコード
新しいベンダークラスを統合する
のに、追加コードを全く書く必要
がないような解決策はあるでしょ
うか?
ベンダーにアダプタクラス
を用意してもらったらどうでしょ
うか?
ベンダー
クラス
アダプタ
既存システム