Um resumo sobre o padrão de projeto Adapter
Analogia Imagine que você tem um carregador de celular 🇧🇷 (tomada brasileira), mas viajou para os Estados Unidos 🇺🇸 e lá a tomada é diferente. O carregador funciona A energia funciona Mas… eles...

Source: DEV Community
Analogia Imagine que você tem um carregador de celular 🇧🇷 (tomada brasileira), mas viajou para os Estados Unidos 🇺🇸 e lá a tomada é diferente. O carregador funciona A energia funciona Mas… eles não encaixam! O que você faz? Você usa um adaptador de tomada. Esse adaptador não muda o carregador nem a tomada — ele só faz os dois conseguirem se conectar (faz uma tradução). O Adapter fazer duas coisas que não são compatíveis conseguirem trabalhar juntas. Exemplo simples pagar(valor) // sistema espera algo assim (tomada us) fazerPagamento(valor) // você tem algo assim (tomara 🇧🇷) // o adapter faz as duas coisas que não são compatíveis conseguirem trabalhar class AdapterPagamento { constructor(servico) { this.servico = servico; } pagar(valor) { this.servico.fazerPagamento(valor); } }