Adapter Design Pattern

Shimaa Yasser
Mar 2, 2023

An Adapter pattern acts as a connector between two incompatible interfaces that otherwise cannot be connected directly. An Adapter wraps an existing class with a new interface so that it becomes compatible with the client’s interface.

const adapteeMessage = 'Adaptee#method was called';

class Adaptee {
String method() {
print('Adaptee#method is being called');

return adapteeMessage;
}
}

abstract class Target {
String call();
}

class Adapter implements Target {
String call() {
var adaptee = Adaptee();
print('Adapter#call is being called');

return adaptee.method();
}
}

void main() {
var adapter = Adapter();
var result = adapter.call();

assert(result == adapteeMessage);
}

--

--