DEV Community

loading...

Adapter Pattern

eidher profile image eidher Updated on ・1 min read

Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn't otherwise because of incompatible interfaces.
Alt Text

Participants

  • Target: defines the domain-specific interface that Client uses.
  • Adapter: adapts the interface Adaptee to the Target interface.
  • Adaptee: defines an existing interface that needs adapting.
  • Client: collaborates with objects conforming to the Target interface.

Code

public class Main {

    public static void main(String[] args) {
        Target target = new Adapter();
        target.request();
    }
}

public interface Target {
    void request();
}

public class Adapter implements Target {
    Adaptee adaptee = new Adaptee();

    @Override
    public void request() {
        adaptee.specificRequest();
    }
}

public class Adaptee {
    void specificRequest() {
        System.out.println("Called specificRequest()");
    }
}

Enter fullscreen mode Exit fullscreen mode

Output

Called specificRequest()
Enter fullscreen mode Exit fullscreen mode

Discussion

pic
Editor guide