Description
Example

// Target interface
interface NetworkService {
void fetchData(String url);
}
// Adaptee class using java.net.HttpURLConnection
class HttpClient {
public String get(String url) throws Exception {
java.net.URL urlObj = new java.net.URL(url);
java.net.HttpURLConnection connection = (java.net.HttpURLConnection) urlObj.openConnection();
connection.setRequestMethod("GET");
java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = in.readLine()) != null) {
response.append(line);
}
in.close();
return response.toString();
}
}
// Adapter class
class NetworkServiceAdapter implements NetworkService {
private HttpClient httpClient;
public NetworkServiceAdapter() {
this.httpClient = new HttpClient();
}
@Override
public void fetchData(String url) {
try {
String response = httpClient.get(url);
System.out.println("Response: " + response);
} catch (Exception e) {
System.out.println("Error fetching data: " + e.getMessage());
}
}
}
// Main class to test the adapter pattern
public class AdapterPatternExample {
public static void main(String[] args) {
NetworkService networkService = new NetworkServiceAdapter();
// Example URL (replace with a valid URL to test)
networkService.fetchData("<https://jsonplaceholder.typicode.com/posts/1>");
}
}