Tasarım Desenleri - Şablon Deseni

Şablon modelinde, soyut bir sınıf, yöntemlerini yürütmek için tanımlanmış yolları / şablonları ortaya çıkarır. Alt sınıfları, ihtiyaca göre yöntem uygulamasını geçersiz kılabilir, ancak çağrı, soyut bir sınıf tarafından tanımlananla aynı şekilde olacaktır. Bu örüntü, davranış örüntüleri kategorisine girer.

Uygulama

Geçersiz kılınamayacak şekilde nihai olacak şekilde ayarlanmış bir şablon yöntemi ile işlemleri tanımlayan bir Game abstract sınıfı oluşturacağız . Kriket ve Futbol , Oyunu genişleten ve yöntemlerini geçersiz kılan somut sınıflardır .

Demo sınıfımız TemplatePatternDemo , şablon modelinin kullanımını göstermek için Game'i kullanacaktır.

Aşama 1

Nihai bir şablon yöntemiyle soyut bir sınıf oluşturun.

Game.java

public abstract class Game {
   abstract void initialize();
   abstract void startPlay();
   abstract void endPlay();

   //template method
   public final void play(){

      //initialize the game
      initialize();

      //start game
      startPlay();

      //end game
      endPlay();
   }
}

Adım 2

Yukarıdaki sınıfı genişleten somut sınıflar oluşturun.

Cricket.java

public class Cricket extends Game {

   @Override
   void endPlay() {
      System.out.println("Cricket Game Finished!");
   }

   @Override
   void initialize() {
      System.out.println("Cricket Game Initialized! Start playing.");
   }

   @Override
   void startPlay() {
      System.out.println("Cricket Game Started. Enjoy the game!");
   }
}

Football.java

public class Football extends Game {

   @Override
   void endPlay() {
      System.out.println("Football Game Finished!");
   }

   @Override
   void initialize() {
      System.out.println("Football Game Initialized! Start playing.");
   }

   @Override
   void startPlay() {
      System.out.println("Football Game Started. Enjoy the game!");
   }
}

Aşama 3

Kullanım Oyun oyunu oynarken tanımlanmış bir yol göstermek için 'ın şablon yöntemi play ().

TemplatePatternDemo.java

public class TemplatePatternDemo {
   public static void main(String[] args) {

      Game game = new Cricket();
      game.play();
      System.out.println();
      game = new Football();
      game.play();		
   }
}

4. adım

Çıkışı doğrulayın.

Cricket Game Initialized! Start playing.
Cricket Game Started. Enjoy the game!
Cricket Game Finished!

Football Game Initialized! Start playing.
Football Game Started. Enjoy the game!
Football Game Finished!