Java のアダプター パターンは、クラスのインターフェイスを別のクライアントが期待するインターフェイスに変換する構造的な設計パターンです。アダプター パターンを使用すると、互換性のないクラスを一緒に使用できます。互換性のないインターフェイスを互換性のあるインターフェイスに変換します。
アダプター パターンには、次の 3 つの役割が含まれています。
ターゲット インターフェイス (Target): 定義 クライアントが期待するインターフェイスは、クライアントが使用する必要があるインターフェイス
public interface USB { /** * 充电 */ void charge(); }
public class PowerSocket { /** * 提供电源 */ protected void powerSupply(){ System.out.println("提供电源"); } }
public class PowerSocketToUSBAdapter extends PowerSocket implements USB { /** * 充电 */ @Override public void charge() { powerSupply(); System.out.println("转换为USB充电..."); } }
public class PowerSocketToUSBAdapter1 implements USB{ private PowerSocket powerSocket; public PowerSocketToUSBAdapter1(PowerSocket powerSocket) { this.powerSocket = powerSocket; } /** * 充电 */ @Override public void charge() { powerSocket.powerSupply(); System.out.println("转换为USB充电..."); } }
public static void main(String[] args) { // 类适配器 USB usb1 = new PowerSocketToUSBAdapter(); usb1.charge(); System.out.println(); // 对象适配器 USB usb2 = new PowerSocketToUSBAdapter1(new PowerSocket()); usb2.charge(); } }
#Java では、クラス アダプター パターンよりもオブジェクト アダプター パターンの方が一般的に使用されます。これは、オブジェクト アダプター パターンが組み合わせ関係を使用するため、適応されたオブジェクトをより柔軟に置き換えることができ、元の継承関係に影響を与えないためです。アダプターの変更によるものです。さらに、オブジェクト アダプターは開始と終了の原則にも準拠しているため、新しいアダプターを追加する必要がある場合、元のコードを変更せずにアダプター インターフェイスを実装するだけで済みます。クラス アダプター モードでは、次のことが必要です。多重継承の使用 Java は多重継承をサポートしていないため、Java ではクラス アダプター パターンを使用するのは困難です。
利点
アダプター モードは、クライアントを特定の実装から切り離すことができ、コードの柔軟性と保守性を向上させます。
アダプター モードは、システムのスケーラビリティを強化できます。
欠点
以上がJavaアダプタパターンの実装方法と適用シナリオは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。