- Bir algoritmanın ana yapısını, bazı adımlarını alt sınıflara bırakarak bir fonksiyonda tanımla.
- Template Method, Bir algoritmanın yapısını değiştirmeden bazı adımlarının alt sınıflarda tekrar tanımlanmasına imkan sağlar.
- Template Method, Bir algoritmanın yapısını değiştirmeden bazı adımlarının alt sınıflarda tekrar tanımlanmasına imkan sağlar.
Sonuçlar
-Template method ile bir algoritmanın değişken noktaları soyutlanır.
-Template Method kalıbıyla algoritmalar arasındaki ortak noktalar bir üst sınıfta soyutlanır değişen noktalar ise alt sınıflarda yerine getirilir.
-Template method ile bir algoritmanın değişken noktaları soyutlanır.
-Template Method kalıbıyla algoritmalar arasındaki ortak noktalar bir üst sınıfta soyutlanır değişen noktalar ise alt sınıflarda yerine getirilir.
-Base classta metodları yaz alt sınıfların override etmesi gereken metotları abstract olarak tanımla. Bu base yani template clası implement eden alt sınıflar bu abstract metotların içini doldursun
Template method kalıbı Strategy kalıbı ile karıştırılabilir.
-Aralarındaki en temel fark Strategy'de tüm algoritma detayını alt sınıflara bırakılmasına karşın Template method'ta algoritmanın iskeleti ve belki bazı adımları belirlenmekte ve diğer bazı adımları alt sınıflara bırakılmaktadır.
-Strategy'de algoritma belli değildir. Template Methodda ise bazı adımlarının detayı dışında algoritma bellidir.
-Strategy'de algoritma belli değildir. Template Methodda ise bazı adımlarının detayı dışında algoritma bellidir.
Strategy Design Pattern‘i davranışın tamamen değiştiği durumlarda,
Template Method Design Pattern’i ise davranışın bir kısmı değiştiği durumlarda kullanılır.
Template Method Design Pattern’i ise davranışın bir kısmı değiştiği durumlarda kullanılır.
Burada dikkat etmemiz gereken nokta, Strategy Design Pattern ile fazladan aynı işi yapacak olan algoritmik çalışma gerçekleştirmektense, var olan kod parçalarının yeniden kullanılabilirliğinin arttırılmasında(Code Reusability) da tercih edildiği görülmektedir.
Yani Strategy ile yazılmış kodu refactoring yaparak template metoda dönüşebiliriz
Hiç yorum yok:
Yorum Gönder