Adapter em Go
O Adapter é um padrão de projeto estrutural, que permite a colaboração de objetos incompatíveis.
O Adapter atua como um wrapper entre dois objetos. Ele captura chamadas para um objeto e as deixa reconhecíveis tanto em formato como interface para este segundo objeto.
Exemplo conceitual
Temos um código cliente que espera alguns recursos de um objeto (Lightning port), mas temos outro objeto chamado adaptee (laptop Windows) que oferece a mesma funcionalidade, mas por meio de uma interface diferente (porta USB)
É aqui que o padrão Adapter entra em cena. Criamos um tipo de struct conhecido como adapter que irá:
-
Seguir a mesma interface que o cliente espera (Lightning port).
-
Traduzir a solicitação do cliente para o adapter na forma que o adapter espera. O adapter aceita um conector Lightning e, em seguida, converte seus sinais em um formato USB e os passa para a porta USB no laptop com Windows.