Executando verificação de segurança...
1

Como eu refatorei esse código cheio de IFs com o design pattern Strategy

Você já se viu preso em um código cheio de IFs para gerenciar integrações múltiplas APIs de terceiros (Gateways de pagamento por exemplo)?

No exemplo abaixo, vou te mostrar um cenário comum em um projeto Laravel:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Services\PaymentGateway\PayPal;
use App\Services\PaymentGateway\Stripe;

class PaymentController extends Controller
{
    public function processPayment(Request $request)
    {
        $provider = $request->input('payment_gateway_provider');
        $paymentDetails = $request->input('payment_details');

        if ($provider === 'PAYPAL') {
            $paypalService = new PayPal(); 
            $paypalService->processPayment($paymentDetails);
        } else if ($provider === 'STRIPE') {
            $stripeService = new Stripe();
            $stripeService->processPayment($paymentDetails);
        }
    }
}

Esse código até funciona, mas imagine como ele se tornaria difícil de manter e escalar à medida que você adiciona mais gateways de pagamento.

No meu último vídeo, eu te mostro como apliquei o Strategy Pattern junto com Enums do PHP para transformar esse código em algo muito mais limpo e escalável. O código final ficou muito mais simples e fácil de manter.

Confira o vídeo e veja como você pode usar essa técnica no seu próximo projeto! O link está na publicação. Deixe seu feedback nos comentários!

Carregando publicação patrocinada...
2

Muito boa a solução, man! Usar o Strategy Pattern pra refatorar esse monte de IFs realmente deixa o código mais limpo e fácil de dar manutenção. Curti também a sacada de usar Enums no PHP, dá uma organizada legal e ainda ajuda a evitar uns bugs chatos kkkk. Já vou tentar aplicar essa ideia num projeto aqui. Valeu pelo conteúdo é o video, ficou top!

0