Fluent Interface ve Class nasıl geliştirilir?

Geçen günlerde LINQ: .NET Language-Integrated Query tarzı kütüphaneler nasıl yazılıyor diye düşünürken ve internette gezinirken VinKamat kullanıcısının 02 Temmuz 2009 tarihinde attığı aşağıdaki tweet’e denk geldim;

LINQ tarzı kodlara örnek olarak aşağıdaki koda bakabiliriz;

Yukarıdaki örnekte de görebileceğimiz gibi, OrderList değişkenindeki listeyi Where() methodu ile filtreliyoruz, OrderBy() methodu ile sıralıyoruz, Take() methodu ile sadece istediğimiz kadar kaydı alıp, Select() methodu ile geriye yeni bir dizi döndürüyoruz.

Biz de benzer şekilde çalışacak bir kod geliştirelim, bu örnekte yemek oluşturacak kodları yazacağız. Öncelikle aşağıdaki interface‘i projemize ekleyelim;

Bu interface‘de önemli nokta, tüm method‘ların kendi interface‘inin tipinde sonuç döndürmesi.

Böylece projeye aşağıdaki gibi bir class ekleyebiliriz;

Bu class‘ta önemli nokta, tüm method’ların this anahtar kelimesi ile kendi sınıfını geri döndürmesi. Böylece bu methodları bir zincir (chain) oluşturacak şekilde aşağıdaki gibi kullanabiliriz;

blog comments powered by Disqus

Engin Polat hakkında

Senior Software Engineer, @Microsoft

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 484

Creative Commons Lisansı