Geçenlerde büyük bir şirkette çalışırken, oradaki programcıların bu kodlama stilini takip ettiklerini fark ettim:
Giriş A ise 12, giriş B ise 21 ve giriş C ise 45 döndüren bir fonksiyonum olduğunu varsayalım.
Böylece fonksiyon imzasını şöyle yazabilirim:
int foo(String s){
if(s.equals("A")) return 12;
else if(s.equals("B")) return 21;
else if(s.equals("C")) return 45;
else throw new RuntimeException("Invalid input to function foo");
}
Ancak kod incelemesinde, fonksiyonu aşağıdaki şekilde değiştirmem istendi:
int foo(String s){
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("A", 12);
map.put("B", 21);
map.put("C", 45);
return map.get(s);
}
İkinci kodun neden ilk koddan daha iyi olduğuna kendimi ikna edemiyorum. İkinci kodun çalışması daha fazla zaman alacaktır.
İkinci kodu kullanmanın tek nedeni, daha iyi okunabilirlik sunması olabilir. Ancak işlev birçok kez çağrılıyorsa, ikinci işlev, çağıran yardımcı programın çalışma süresini yavaşlatmaz mı?
Bunun hakkında ne düşünüyorsun?
switch
gibi görünüyor ( daha uygun görünüyorif-else
). Ancak bir noktada sorunlu hale gelir. Bir Harita kullanmanın ana avantajı, bir dosya veya tablo vb.