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;
FI(Fluent Interface) - when you use method chaining, after finishing the functionality, "return this", and that's how you make it fluent— Vin (@VinKamat) July 2, 2009
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;
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484