Magicode logo
Magicode
0

Adapter

Adapterパターンは、APIクライアントが必要とするインターフェースを持つラッパーを提供し、互換性のない型をリンクさせ、2つの型の間のトランスレーターとして機能します。 アダプターは、クラスのインターフェイスを使用して、互換性のある別のインターフェイスを持つクラスになります。要件が変更された場合、互換性のないインターフェースのためにクラスの機能を変更する必要があるシナリオがあります。

依存関係逆転の原則は、アダプターパターンを使用することで、クラスが自身のインターフェースをアダプタークラスが実装する次のレベルのモジュールのインターフェースに定義する場合に遵守することができます。委譲は、アダプターパターンで使用されるもう一つの原則です。ソースからデスティネーションへの変換を扱う複数のフォーマットは、アダプターパターンが適用されるシナリオです。 <=ここら辺よくわからない

Adapterパターンの構成

  • target
  • adaptee
  • adapter
  • client
  • ターゲットとは、クライアントがアダプタやアダプティのメソッドを呼び出すためのインターフェースです。
  • クライアントは、アダプタが実装する互換性のないインターフェースを求めます。
  • アダプタは、アダプティの互換性のないインタフェースを、クライアントが望むインタフェースに変換します。

例えば、processメソッドを持つIProcessインターフェイスがあり、Adapterクラスはprocessメソッドを実装し、Adapteeインスタンスを属性として持っているとします。Adaptee クラスは convert メソッドと adapterType インスタンス変数を持っています。APIクライアントを使用している開発者は、processインターフェース・メソッドを呼び出して、Adaptee上でconvertを呼び出します。コードは以下の通りです。


Discussion

コメントにはログインが必要です。