Refactoring 3: Inline Method & Inline Temp

Merhabalar.

Refactoring yaparken, amaçlardan biri koddaki karmaşıklığı gidermek ve okunabilirliği sağlamaktır. Mesela bir önceki yöntemde tekrar eden veya okunurluğu zorlaştıran scriptleri ayrı metod haline getirmiştik.Ama metoda çevirme işinin, hatta değişken oluşturma işinin de abartılmamasında fayda var. Gereksiz yere bunların kullanımı da yine okunurluğu zorlaştırabilir. Buradaki 2 yöntem bu sıkıntıları gidermeye matuftur.

a – Inline Method

Nedir?

int getRating()
 {
      return (moreThanFiveLateDeliveries()) ? 2 : 1;
 }

boolean moreThanFiveLateDeliveries()
 {
      return _numberOfLateDeliveries > 5;
 }

extractmethod

int getRating()
 {
      return (_numberOfLateDeliveries > 5) ? 2 : 1;
 }

 

Neden?

  • Bir önceki yöntemde, kodun anlaşılmasının zor olduğu parçalar yerine; anlaşılır isimde, kısa metodlar yazılması öneriliyordu.
  • Ama herşeyin olduğu gibi metodun da gereksizi ve fazlası zarardır. Bu yüzden değişken kullanılabilecekken ve işi karmaşıklaştırmayacaksa, gereksiz yere metod kullanmak tavsiye edilmez.

Nasıl?

  • Metodun polimorfik olup olmadığı kontrol edilir.
  • Metodun çağrıldığı bütün yerler bulunur.
  • Metodun gövde kısmıyla, metodun çağırıldığı script değiştirilir.
  • Derleme ve test.
  • Metod remove edilir.

 

b – Inline Temp

Nedir?


double basePrice = anOrder.basePrice();
 return (basePrice > 1000);

extractmethod

return (anOrder.basePrice() > 1000);

 

Neden?

  • Inline Method yöntemiyle benzer nedenden ötürü bu yöntem kullanılır.
  • Üstteki örnekteki gibi değişkenin eşitlendiği kısım sabitse(hard coded bir değer, global bir değişken veya bir değer dönen bir metod vb.) ve değişken tek bir yerde kullanılacaksa değişkene gerek olmadığını söyleyebiliriz.

Nasıl?

  • “Değişkene atanan kısım sabit mi” ve “değişken tek yerde mi kullanılıyor” kontrol edilir.
  • Değişkenin kullanıldığı yere değişkenin eşitlendiği değer yazılır
  • Derleme ve test.
  • Değişkenin tanımlanma ve eşitlenme kısımları silinir.

Kendinize çook iyi davranın.

Kaynak:

http://sourcemaking.com/refactoring/inline-method

http://sourcemaking.com/refactoring/inline-temp

 Bu sayfa 1959 kez görüntülendi

It's only fair to share...Share on LinkedInShare on FacebookShare on Google+Tweet about this on TwitterShare on Tumblr
Benzer Konular

Yorum Yap


Not - Bunları KullanabilirsinizHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>