Merhabalar, bir pazar yeri uygulaması yazıyoruz. payment gateway için 2-3 adet farklı ödeme sağlayıcısı kullanacağız.

Bunu best practice olarak sizlerce nasıl yapabilirim.

Aklımdan geçen öncelikle bir interface yazmak.

public interface IPaymentProcessor
{
    bool ProcessPayment(Order order);
}
Sonrasında her payment processor için bir servis açayım diyorum

public class İyizicoService: IPaymentProcessor
{
public bool ProcessPayment(Order order)
{
return true;
}
}

public class PaytrService: IPaymentProcessor
{
public bool ProcessPayment(Order order)
{
return false;
}
}

Sonrasında bir navigator tarzı bir şey düşünüyorum.

public class PaymentProcessorNavigator
{
    public static IPaymentProcessor Navigate(Order Order)
    {
        switch (order.ProcessorType)
        {
            case Processors.Iyizico:
return new IyiziService();
            case Processors.Paytr:
return new PayTrService();
        }
    }
}

Aklıma ilk gelen yöntem böyle bir şey oldu ama daha iyi bir fikri olan veya biz şöyle yaptık güzel oldu diyecek varsa yorumları bekliyorum, şimdiden teşekkürler.