構造型設計モード(1):アダプタモード


定義#テイギ#
アダプタモード(英語:adapter pattern)は、パッケージスタイルまたはパッケージとも呼ばれる場合があります.1つのクラスのインタフェースをユーザが期待するものに転送する.インタフェースが互換性がないため、一緒に作業できないクラスを一緒に作業するのに適しています.
アダプタモードは2種類あります.
1.オブジェクトアダプタモード-オブジェクトアダプタは、関連付けによってユーザの期待インタフェースを満たし、コード間の不良結合も低減する.仕事では「対象適合」をお勧めします.
2.クラスアダプタモード-このアダプタモードでは、アダプタは実装済みのクラス(一般的に多重継承)を継承し、javaでは多重継承はないので、ここでは説明しません.
インプリメンテーション
1.Target-Clientが使用する方法を定義します.
2.Adapter-Targetを継承または実装し、Adapteeの方法をTargetに適合させる.
3.Adaptee-既存のメソッドを定義します.
4.Client-Targetのメソッドを呼び出します.
public class Adaptee {
	public void specificRequest(){
		System.out.println("Hello, I am from Adaptee!");
	}
}

public interface Target {
	public void request();
}

public class Adapter implements Target {
	Adaptee adaptee;
	public Adapter(){
		adaptee = new Adaptee();
	}
	public void request(){
		adaptee.specificRequest();
	}
}

public class Client {
	public static void main(String[] args) {
		Target target = new Adapter();
		target.request();
	}
}

クラスアダプタモードを実装するには、AdapterがAdapteeを継承する必要があります.
適用シーン
1. 古いクラスを使用したいのですが、インタフェースがあなたのニーズに合わない場合は、仲介クラスとしてAdapterクラスを使用することができます.
2. 関連のないクラスのインタフェースを呼び出して使用できる汎用クラスを作成したいです.
リファレンス
http://www.oodesign.com/adapter-pattern.html
https://zh.wikipedia.org/wiki/%E9%80%82%E9%85%8D%E5%99%A8%E6%A8%A1%E5%BC%8F