Geçtiğimiz yıl, geliştirilmesine yardımcı olduğum bir e-ticaret sitesi projesinde bir gün aşağıdaki gibi kodlar yazıyordum;
Eminim benim gibi sizler de zaman zaman
if-else blocklarını veya
switch-case blocklarını yukarıdaki gibi kullanıyorsunuzdur.
Yukarıdaki kodda yanlış bir durum gözükmese de, ya biri birgün yeni bir arama methodu ekleyecek olsa? Hatta biri bir arama methodunu silmek istese?
İşte bu tip durumlarla karşılaşılabilir, bu durumu nasıl ortadan kaldırabilirim diye düşünerek, küçük egzersizler yapmaya başladım.
Sonunda aklıma şöyle bir fikir geldi;
Keyiçin SearchArea,
Valueiçin Action tiplerini belirlesem
Action'ları eklesem
Action'ları getirsem ve sırasıyla onları çağırsam?
Böylece istediğim SearchArea için bir veya daha fazla
Action tanımlayabilir, onları çağırabilirim.
Nasıl fikir ama? :) (O zaman farkına varmasam da Delegate Dictionary isminde bir pattern zaten varmış)
Yukarıdaki adımların koda dökülmüş hali;
Sizce de daha güzel gözükmüyor mu? :)
Chief Architect, Microsoft RD, Microsoft MVP
Ada ve Ege'nin babası ;)
Makale Adedi: 466