Sobes.tech
Junior — Middle

Como explicar o conceito do padrão Adaptador no contexto do design de sistemas de software?

sobes.tech IA

Resposta da IA

O padrão Adaptador serve para transformar a interface de uma classe na interface esperada pelo cliente. Isso permite trabalhar com interfaces incompatíveis sem alterar o código existente.

No contexto do Flutter, por exemplo, se tiver uma classe externa com um método que não corresponde à sua interface, pode criar um adaptador que "traduz" as chamadas.

Exemplo:

// Classe externa com outra interface
class OldApi {
  String fetchData() => 'Dados da API antiga';
}

// Nossa interface
abstract class DataSource {
  String getData();
}

// Adaptador
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()); // Vai mostrar: Dados da API antiga
}

Dessa forma, o padrão Adaptador ajuda a integrar componentes incompatíveis, mantendo a arquitetura limpa.