ホームページ  >  記事  >  Java  >  Java のアダプター パターンに関する例の共有

Java のアダプター パターンに関する例の共有

黄舟
黄舟オリジナル
2017-09-23 10:04:011623ブラウズ

この記事では、Java の設計パターンであるアダプター パターンに関する情報を主に紹介します。アダプター パターンは、クラスのインターフェイスを顧客が期待する別のインターフェイスに変換します。アダプターを使用すると、もともと互換性のなかったクラスが緊密に連携できるようになります。必要な友人は、Java の設計パターンのアダプター パターンを参照できます。 Interfaces は、ターゲット インターフェイスの実装クラスを宣言し、このクラスで、ターゲット インターフェイスを実装するときに、アダプティのインスタンスをパラメータとして受け取るコンストラクターとアダプティを宣言します。いくつかの追加の操作によって補足されて呼び出されます。アダプター パターンの本体には、アダプター、アダプター実装クラス、およびアダプティの 3 つの部分があります。具体的なクラス構造は次のとおりです。

ここでは、アダプティのオブジェクトが結合された方法でアダプタ クラスに配置され、アダプティとその実装者の両方がアダプタを使用できるようになります。アダプター パターンの利点は、異なるタイプのオブジェクトでも同様の動作目的を持たせて互換性を持たせることができることです。欠点は、ターゲット インターフェイスが大きい場合、互換性作業を実行するために多くの追加コードが必要になることです。

アダプター パターンを説明するための実際的な例として使用されています。七面鳥もアヒルも鳴くことも飛ぶこともできますが、七面鳥とアヒルは鳴き方が異なり、七面鳥はアヒルほど遠くまで飛ぶことができません。七面鳥をアヒルに偽装したい場合は、何らかの方法で七面鳥のオブジェクトをドレスアップする必要があります。これもアヒルの一種です。七面鳥がドレスに入ると、七面鳥はアヒルに変わります。アヒル。具体的なクラスの実装は次のとおりです。

ターゲットインターフェイス (duck インターフェイス):

public interface Duck {
  void quack();
  void fly();
}

ターゲットインターフェイスの通常の実装 (duck 実装):

public class MallardDuck implements Duck {
  @Override
  public void quack() {
    System.out.println("Quack");
  }

  @Override
  public void fly() {
    System.out.println("I'm flying");
  }
}

Adapte インターフェイス (turkey インターフェイス):


public interface Turkey {
  void gobble();
  void fly();
}

アダプターは一般に実装されています (七面鳥クラス):


public class WildTurkey implements Turkey {
  @Override
  public void gobble() {
    System.out.println("Gobble gobble");
  }

  @Override
  public void fly() {
    System.out.println("I'm flying a short distance");
  }
}

アダプター:


public class TurkeyAdapter implements Duck {
  private Turkey turkey;

  public TurkeyAdapter(Turkey turkey) {
    this.turkey = turkey;
  }

  @Override
  public void quack() {
    turkey.gobble();
  }

  @Override
  public void fly() {
    for (int i = 0; i < 5; i++) {
      turkey.fly();
    }
  }
}

七面鳥アダプターを通じて、七面鳥をアヒルに適応させました。ここで説明する必要があるのは、アダプター モードとデコレーター モードは両方ともソース オブジェクトを装飾して特定の効果を実現するということですが、アダプター モードとデコレーター モードの違いは、アダプター モードがソース オブジェクトを適応させることです。は特定のインターフェイスに準拠でき、デコレータ パターンはソース オブジェクトの機能を拡張して、より多くの作業を実行できるようにします。

以上がJava のアダプター パターンに関する例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。