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. 개체 어댑터 패턴
구현 방법: 개체 어댑터 패턴은 기존 구성 요소 라이브러리에 구현된 구성 요소를 어댑터에 도입할 수도 있습니다.
아아아아위 내용은 두 가지 범주의 Java 어댑터 패턴 및 특정 애플리케이션 시나리오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!