17 Tem 2012

Video Store Kata

Video Store Martin Fowler’in Refactoring isimli kitabında kullandığı bir örnek uygulama. Buradan ve Robert C. Martin’in CleanCoders.com‘da yer alan gösterimlerinden esinlenerek bu katayı hazırladım. Bu katayı kataların anası olarak tanımlıyorum, çünkü bu kata sık kullanılan birçok yeniden yapılandırma metodunu ihtiva ediyor.

  Video Store Kata Kodu (487,8 KiB, 1.447 hits)
You need to be a registered user to download this file.


EOF (End Of Fun)
Özcan Acar

0 Comments Continue reading

14 Tem 2012

Koşullu Mantığın Komut İle Değiştirilmesi (Replace Conditional Dispatcher With Command)

Aşağıdaki tarzda if/else bloklarıyla sıkça karşılaşırız. Eğer böyle yapılar Koşullu Mantığın Komut İle Değiştirilmesi (Replace Conditional Dispatcher With Command) refactoring metodu ile yok edilmesse, kodun bakımı ve geliştirilmesi zaman içinde zorlaşır. Bu örnekte görüldüğü gibi yeni bir locale ile işlem yapabilmek için koda yeni bir else if bloğunun eklenmesi gereklidir, yani uygulamaya yeni bir davranış biçimi kazandırabilmek için kodun değiştirilmesi gerekmektedir. Bu Açık Kapalı Tasarım Prensibi (Open Closed Principle – OCP) ile uyumlu değildir. Uygulamayı OCP tasarım prensibi ile uyumlu hale getirmek için Koşullu Mantığın Komut İle Değiştirilmesi (Replace Conditional Dispatcher With Command) refactoring metodu uygulanır.

if (locale != null && locale.equals("de_DE")) {
	taxRate = 19.00;
	final Double tax = Double.valueOf((price / 100) * taxRate);
	result = Double.valueOf(tax.doubleValue() + price);
} else if (locale != null && locale.equals("tr_TR")) {
	taxRate = 18.00;
	final Double tax = Double.valueOf((price / 100) * taxRate);
	result = Double.valueOf(tax.doubleValue() + price);
} else if (locale != null && locale.equals("at_AT")) {
	taxRate = 20.00;
	final Double tax = Double.valueOf((price / 100) * taxRate);
	result = Double.valueOf(tax.doubleValue() + price);
}

  Koşullu Mantığın Komut İle Değiştirilmesi Kata Kodu (976 bytes, 1.478 hits)
You need to be a registered user to download this file.

EOF (End Of Fun)
Özcan Acar

3 Comments Continue reading
http://kodkata.com/wp-content/themes/selecta