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;
Key
için SearchArea, Value
için Action tiplerini belirlesemAction
'ları eklesemAction
'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? :)
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484