Junior — Middle
How to explain the concept of the Adapter pattern in the context of software system design?
sobes.tech AI
Answer from AI
The Adapter pattern is used to convert the interface of a class into another interface that the client expects. This allows incompatible interfaces to work together without modifying existing code.
In the context of Flutter, for example, if you have an external class with a method that does not match your interface, you can create an adapter that "translates" calls.
Example:
// External class with a different interface
class OldApi {
String fetchData() => 'Data from old API';
}
// Our interface
abstract class DataSource {
String getData();
}
// Adapter
class ApiAdapter implements DataSource {
final OldApi oldApi;
ApiAdapter(this.oldApi);
@override
String getData() {
return oldApi.fetchData();
}
}
void main() {
OldApi oldApi = OldApi();
DataSource adapter = ApiAdapter(oldApi);
print(adapter.getData()); // Outputs: Data from old API
}
Thus, the Adapter pattern helps integrate incompatible components while maintaining architectural cleanliness.