Comprendre le Design Pattern Adapter avec un exemple concret en Java

Le Design Pattern Adapter

Le design pattern Adapter est utilisé lorsqu’on souhaite faire communiquer deux classes qui n’ont pas la même interface. En d’autres termes, c’est comme un traducteur qui permet à deux systèmes différents de se comprendre.

Je vais t’expliquer cela avec un exemple simple et concret que tout le monde peut comprendre.


🎧 Cas réel : Brancher un vieux casque sur un smartphone moderne

Imaginons que tu as :

Le problème :

Le casque et le smartphone ne peuvent pas se connecter directement.

La solution ? Un Adapter (ou adaptateur) :


🏗️ Comment ça se traduit en programmation ?

  1. Le Smartphone attend une interface USB_C.
  2. Le VieuxCasque a l’interface Jack35.
  3. L’Adapter traduit Jack35 en USB_C.

Ainsi, le smartphone peut utiliser le vieux casque sans connaître ses détails internes.


🧪 Exemple complet en Java (code intégré)

1. Interfaces de base

// Interface du smartphone
interface USB_C {
    void connecter();
}

// Interface du vieux casque
interface Jack35 {
    void brancher();
}

2. Implémentation du vieux casque

class VieuxCasque implements Jack35 {
    @Override
    public void brancher() {
        System.out.println("Casque jack 3.5 mm branché.");
    }
}

3. Adapter pour USB-C

class JackToUSBCAdapter implements USB_C {
    private final Jack35 vieuxCasque;

    public JackToUSBCAdapter(Jack35 vieuxCasque) {
        this.vieuxCasque = vieuxCasque;
    }

    @Override
    public void connecter() {
        System.out.println("Adaptateur jack -> USB-C en action...");
        vieuxCasque.brancher();
    }
}

4. Smartphone

class Smartphone {
    public void brancherCasque(USB_C usbCDevice) {
        usbCDevice.connecter();
        System.out.println("Le smartphone peut maintenant écouter la musique !");
    }
}

5. Main

public class Main {
    public static void main(String[] args) {
        VieuxCasque casque = new VieuxCasque();
        USB_C adapter = new JackToUSBCAdapter(casque);

        Smartphone phone = new Smartphone();
        phone.brancherCasque(adapter);
    }
}

Résultat attendu

Adaptateur jack -> USB-C en action...
Casque jack 3.5 mm branché.
Le smartphone peut maintenant écouter la musique !

🧩 Pourquoi c’est utile dans la vraie vie ?

Il permet de :


📝 Conclusion

L’Adapter est un pattern très pratique pour la compatibilité et la réutilisation. Il permet de connecter des objets ou des systèmes différents sans modifier leur code. Simple, efficace et utilisé partout, que tu sois étudiant, développeur débutant ou professionnel confirmé.

Rejoignez-nous