O que é o Padrão Adapter?

O padrão de projeto Adapter é utilizado para permitir que duas classes incompatíveis trabalhem juntas. Ele converte a interface de uma classe em outra interface esperada pelos clientes. Dessa forma, classes que normalmente não poderiam interagir diretamente podem ser integradas de forma transparente.

O Problema

image.png

A Solução

image.png

Diagrama

image.png

Implementação

public class Main {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

    System.out.println("Escolha a opção de pagamento:");
    System.out.println("01 - PayPal");
    System.out.println("02 - Payoneer");
    System.out.println("03 - Mercado Pago");
    System.out.print("Digite o número correspondente à opção desejada: ");
    String paymentOption = scanner.nextLine();

    IPayPalPayments paymentProcessor;

    switch (paymentOption) {
      case "01":
        paymentProcessor = new PayPal();
        System.out.println("Você escolheu PayPal.");
        break;
      case "02":
        paymentProcessor = new PayoneerAdapter(new Payoneer());
        System.out.println("Você escolheu Payoneer.");
        break;
      case "03":
        paymentProcessor = new MercadoPagoAdapter(new MercadoPago());
        System.out.println("Você escolheu Mercado Pago.");
        break;
      default:
        System.out.println("Opção inválida. Por favor, escolha entre 01, 02 ou 03.");
        return;
    }

    paymentProcessor.paypalPayments();
    paymentProcessor.paypalReceive();
  }
}

Vantagens do Uso do Adapter Pattern neste Código

  1. Flexibilidade e Extensibilidade: