Python Design Patterns - Template

Um padrão de template define um algoritmo básico em uma classe base usando operação abstrata onde as subclasses substituem o comportamento concreto. O padrão de modelo mantém o esboço do algoritmo em um método separado. Esse método é conhecido como método de modelo.

A seguir estão os diferentes recursos do padrão de modelo -

  • Ele define o esqueleto do algoritmo em uma operação

  • Inclui subclasses, que redefinem certas etapas de um algoritmo.

class MakeMeal:

   def prepare(self): pass
   def cook(self): pass
   def eat(self): pass

   def go(self):
      self.prepare()
      self.cook()
      self.eat()

class MakePizza(MakeMeal):
   def prepare(self):
      print "Prepare Pizza"
   
   def cook(self):
      print "Cook Pizza"
   
   def eat(self):
      print "Eat Pizza"

class MakeTea(MakeMeal):
   def prepare(self):
      print "Prepare Tea"
	
   def cook(self):
      print "Cook Tea"
   
   def eat(self):
      print "Eat Tea"

makePizza = MakePizza()
makePizza.go()

print 25*"+"

makeTea = MakeTea()
makeTea.go()

Resultado

O programa acima gera a seguinte saída -

Explicação

Este código cria um modelo para preparar a refeição. Aqui, cada parâmetro representa o atributo para criar uma parte da refeição, como chá, pizza, etc.

A saída representa a visualização dos atributos.