private static void AssertSingleton() { var nullProcessor1 = PaymentStrategyFactory.Create("Non Existence Payment Provider111"); var nullProcessor2 = PaymentStrategyFactory.Create("Non Existence Payment Provider222"); Debug.Assert(nullProcessor1 == nullProcessor2); }
private static void ProcessPayments() { var paymentProviders = new[] { "Paypal", "ApplePay", "GooglePay", "Braintree", "PayPal", "ApplePay", "ApplePay", "BadPaymentProvider" }; foreach (var paymentProvider in paymentProviders) { var paymentProcessor = PaymentStrategyFactory.Create(paymentProvider); WriteLine($"===== Processing with '{paymentProvider}' Provider ====="); // There is no need to check if the payment processor is null here // Reduced Cyclomatic Complexity. var paymentStatus = paymentProcessor.Process(111); WriteLine($"--> {paymentStatus}"); } }