Belki bir kod örneği yardımcı olur, ben C # kullanacağım, ama birlikte takip edebilmelidir.
IPayable adında bir arayüzümüz olduğunu varsayalım
public interface IPayable
{
public Pay(double amount);
}
Şimdi, bu arayüzü uygulayan iki somut sınıfımız var:
public class BusinessAccount : IPayable
{
public void Pay(double amount)
{
//Logic
}
}
public class CustomerAccount : IPayable
{
public void Pay(double amount)
{
//Logic
}
}
Şimdi, çeşitli hesaplardan oluşan bir koleksiyonumuz olduğunu varsayalım, bunu yapmak için IPayable türünün genel bir listesini kullanacağız
List<IPayable> accountsToPay = new List<IPayable>();
accountsToPay.add(new CustomerAccount());
accountsToPay.add(new BusinessAccount());
Şimdi, tüm bu hesaplara 50,00 $ ödemek istiyoruz:
foreach (IPayable account in accountsToPay)
{
account.Pay(50.00);
}
Şimdi arayüzlerin inanılmaz derecede faydalı olduğunu görüyorsunuz.
Yalnızca somut nesnelerde kullanılırlar. Statik sınıflarda değil.
Statik ödeme yaptıysanız, IPayable'ın hesaplar arasında dolaşırkenToPay, BusinessAcount veya CustomerAccount'ta ödeme çağırıp çağırmayacağını anlamanın bir yolu olmazdı.