Description

New Recording.m4a

Example

New Recording 2.m4a

UML

image.png

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>");
    }
}