C#

Interface Segregation Prensibi

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda SOLID prensiplerinden olan Interface Segregation Prensibi’ni anlatacağım. Hadi başlayalım !

Interface Segregation Prensibi Nedir?

İnterface Segregation Prensibi (ISP), SOLID prensipleri arasında yer alan bir prensiptir. Bu prensip, bir arayüzün mümkün olduğunca özelleştirilmiş ve spesifik olması gerektiğini savunur. Bu sayede, kullanmayacağımız özelliklerin bulunduğu bir arayüzün gereksiz yere genişletilmesini engeller ve kodun daha modüler, esnek ve kolay bakım yapılabilir hale gelmesini sağlar.

C# dilinde ISP prensibini uygulamak oldukça kolaydır. Öncelikle, bir arayüzün görevlerinin mümkün olduğunca özelleştirilmesi gerekir. Ardından, bir sınıf birden fazla arayüzü uygulayabilir ve sadece ihtiyaç duyduğu arayüz metodlarını implemente edebilir.

Aşağıda, bir örnek senaryo üzerinden ISP prensibini uygulama adımlarını ve C# kod örneklerini inceleyebiliriz:

Senaryo: Bir yazılım firması, bir e-ticaret sitesi için bir sepet işlevselliği geliştirmek istiyor. Sepetin eklenen ürünleri listeleme, ürün silme, sepeti boşaltma ve toplam fiyat hesaplama işlevleri olmalıdır.

Uygulama Adımları

Adım 1: Sepet arayüzünü oluşturma

Sepet işlevselliğini sağlayacak arayüzümüzü oluşturuyoruz. Bu arayüzde, sadece sepet işlevselliği ile ilgili metodlar yer alacak.

public interface ISepet
{
    void UrunEkle(Urun urun);
    void UrunSil(Urun urun);
    void SepetiBosalt();
    double ToplamFiyatHesapla();
}

Adım 2: Ürün sınıfını oluşturma

Sepette yer alacak ürünlerin özelliklerini taşıyacak Urun sınıfını oluşturuyoruz.

public class Urun
{
    public string Ad { get; set; }
    public double Fiyat { get; set; }
}

Adım 3: Sepet sınıfını oluşturma

Sepet işlevselliğini sağlayacak Sepet sınıfımızı oluşturuyoruz. Bu sınıf, ISepet arayüzünü uygulayacak ve sadece ihtiyaç duyulan metodları implemente edecektir.

public class Sepet : ISepet
{
    private List<Urun> urunler = new List<Urun>();

    public void UrunEkle(Urun urun)
    {
        urunler.Add(urun);
    }

    public void UrunSil(Urun urun)
    {
        urunler.Remove(urun);
    }

    public void SepetiBosalt()
    {
        urunler.Clear();
    }

    public double ToplamFiyatHesapla()
    {
        double toplamFiyat = 0;
        foreach (Urun urun in urunler)
        {
            toplamFiyat += urun.Fiyat;
        }

        return toplamFiyat;
    }
}

Bu örnekte, Sepet sınıfı ISepet arayüzünü uygulamaktadır. Ancak, Sepet sınıfı sadece ihtiyaç duyulan UrunEkle, UrunSil, SepetiBosalt ve ToplamFiyatHesapla metodlarını implemente etmektedir. Bu sayede, Sepet sınıfı gereksiz yere genişletilmemiş ve daha özelleştirilmiş bir arayüze sahip olmuştur.

Sonuç

ISP prensibi, kodun daha esnek, modüler ve bakım yapılabilir hale gelmesini sağlar. Ayrıca, gereksiz yere genişletilmiş arayüzlerin neden olduğu performans sorunlarını da engeller. Bu nedenle, C# dilinde ISP prensibine uygun kod yazmak önemlidir.

Evet Interface Segregation Prensibi ve C# ile uygulanması bu şekilde olmakta. Tüm C# yazılarımıza buraya, diğer SOLID prensipleri yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu