using System;
using static System.Console;
// i will use constructor injection in here
// i know i should make it in sperate files but just so i could publish on ideone and i think it doesnt need a repo in github
public interface Ipayment
{
public string completePayement();
}
class paypalpayement : Ipayment
{
public string completePayement()
{
return $"Paypal payment is successful ";
}
}
class creditcardpayment : Ipayment
{
public string completePayement()
{
return $"credit card payment is succsseful ";
}
}
class extendedpayment : Ipayment
{
public string completePayement()
{
return $" the extended payment is successful operation ";
}
}
class pay
{
private readonly Ipayment ipayment;
public pay(Ipayment payemnt )
{
ipayment = payemnt;
}
public void finishpay()
{
WriteLine(ipayment.completePayement());
}
}
public class Test
{
public static void Main()
{
Ipayment creditcard=new creditcardpayment();
pay m1 = new pay(creditcard);
m1.finishpay();
creditcard = new paypalpayement();
m1 = new pay(creditcard);
m1.finishpay();
creditcard = new extendedpayment();
m1 = new pay(creditcard);
m1.finishpay();
}
}