1. クラスアダプターのパターン
実装方法: 現行システムのビジネスインターフェースを実装するアダプタークラスを定義すると同時に、既存システムに存在するコンポーネントを継承します。既存のコンポーネントライブラリ。
public class HelloWorld { public static void main(String[] args) { Computer computer = new Computer(); SDCard sdCard = new SDCardImpl(); System.out.println(computer.readSD(sdCard)); System.out.println("------------"); SDAdapterTF adapter = new SDAdapterTF(); System.out.println(computer.readSD(adapter)); } } // SD卡的接口 interface SDCard { // 读取SD卡功能 String readSD(); // 写入SD卡功能 void writeSD(String msg); } // SD卡实现类 class SDCardImpl implements SDCard { @Override public String readSD() { String msg = "sd card read a msg: hello sd card"; return msg; } @Override public void writeSD(String msg) { System.out.println("sd card write msg: " + msg); } } // 电脑类 class Computer { public String readSD(SDCard sdCard) { if (sdCard == null) { throw new NullPointerException("sd card null"); } return sdCard.readSD(); } } // TF卡接口 interface TFCard { // 读取TF卡功能 String readTF(); // 写入TF卡功能 void writeTF(String msg); } // TF卡实现类 class TFCardImpl implements TFCard { @Override public String readTF() { String msg = "sd card read a msg: hello tf card"; return msg; } @Override public void writeTF(String msg) { System.out.println("tf card write msg: " + msg); } } // 定义适配器类(SD兼容TF) class SDAdapterTF extends TFCardImpl implements SDCard { @Override public String readSD() { System.out.println("adapter read tf card "); return readTF(); } @Override public void writeSD(String msg) { System.out.println("adapter write tf card"); writeTF(msg); } }
2. オブジェクト アダプター パターン
実装方法: オブジェクト アダプター パターンは、既存のコンポーネント ライブラリに実装されているコンポーネントをアダプターとクラスに導入できます。現在のシステムのビジネス インターフェイスと同時に実装できます。
rree以上がJava アダプター パターンの 2 つのカテゴリと特定のアプリケーション シナリオの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。