Closed4

Adapter パターン

まゆる :)まゆる :)

Adapter パターン適用フロー

STEP1: 適用に値する状況かどうかを確認する

以下いずれかなら次のステップに進む。

  • 使用したい既存クラスのインターフェースが自分のコードと互換性がない
  • 既存のいくつかのサブクラスを再利用したいが、 スーパークラスに追加できる共通機能が欠けている

STEP2: メリット > デメリットであることを確認する

メリット

  • 単一責任の原則に準じる
    • インターフェースやデータの変換処理を主要なビジネスロジックから分離できる
  • 開放閉鎖の原則に準じる
    • 既存のクライアント側を変更することなく、 新しい種類のアダプターを追加できる

デメリット

  • コードが複雑になる。Adaptee を書き直す方が簡単で優れている場合がある。

STEP3: コードを書く

2 つの非互換なクラスがあることを確認

  • 有益だが変更できないクラス
  • このクラスを使いたいクライアントクラス

クライアントインターフェイスとアダプタークラスを作成

アダプタークラスに、Adaptee への参照を格納するためのフィールドを追加する。コンストラクタで初期化するのが一般的だが、メソッドの呼び出し時に渡してもよい。

実際の仕事のほとんどは Adaptee に任せて、インターフェースやデータ形式の変換だけを行うようにする。

このスクラップは2023/10/02にクローズされました