Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

Design Pattern - Template Method



  May 07, 2019    Labels:,,,,,,,, 

Yazılımımızda aynı işi duruma göre farklı şekilde yapmak istersek kullanabileceğimiz yöntemlerden biri Template Method Pattern'ıdır. Bu patern uygulamamızda yapılacak bir işin çeşitli nedenlerden dolayı iki ya da daha fazla farklı yöntem ile yapılması gerekiyor ise bize uygun kalıbı sağlar. Örneğin elimizdeki bir metni farklı formatlarda göstermek isteyebiliriz. Kullanıcı pdf veya word dosyası olarak bu metni görüntülemek veya dışarı aktarmak isteyebilir. Bu durumda bu işleri birbirinden bağımsız şekillerde tasarlamak ileride problemlere yol açacaktır. Bu yüzden bu yöntemlerin tümünü aynı çatı altında tasarlayarak bir arayüz vasıtasıyla bu yöntemleri kullanacak sınıflara açmalıyız.

Uygulama
  • Yöntemler için ortak bir arayüz tanımlanır. Bu arayüz saf sanal bir sınıf olur. Bu sınıfın dışarıya açılan bir template metodu olur. Dışarıdan bu yöntemleri kullanacak sınıflar template metot üzerinden erişim sağlarlar. Template metot ile uygun yöntem çalıştırılır.
  • Her yöntem için bir sınıf tanımlanır. Bu sınıf ortak arayüz olan saf sanal sınıftan türetme yapılarak oluşturulur. Override edilen metoda uygun yöntem tanımlanır.





public abstract class DokumanYoneticisi {

     public void goruntule() {
         
         //ortak işlemler
         render();
     }
     
     public abstract void render();
}

public class PDF extends DokumanYoneticisi {
    
    public void render() {
        System.out.println("PDF görüntülendi");
    }
}

public class Word extends DokumanYoneticisi {
    
    public void render() {
        System.out.println("Word görüntülendi");
    }
}

public class TEST {
    
    public static void main() {
        DokumanYoneticisi dokumanYoneticisi = new PDF();
        dokumanYoneticisi.goruntule();
    }
}

No comments:

Post a Comment