Padrões de Projeto - Template Method

Template Method é uma ferramenta poderosa para promover a reutilização de código e a flexibilidade em algoritmos.

O padrão de projeto Template Method é um padrão comportamental que faz parte do grupo dos padrões de projeto GoF (Gang of Four). O objetivo desse padrão é definir a estrutura geral de um algoritmo em uma classe base, permitindo que as subclasses sobrescrevam etapas específicas desse algoritmo sem alterar a sua estrutura geral.

O padrão Template Method é especialmente útil quando você tem um algoritmo que possui uma sequência fixa de etapas, mas essas etapas podem variar de implementação para implementação. Ao usar esse padrão, você pode encapsular o algoritmo na classe base e permitir que as subclasses implementem as variações necessárias.

A estrutura básica do padrão Template Method é composta por duas partes principais:

  1. Classe Abstrata (ou Classe Base): Define o esqueleto do algoritmo através de um método chamado "template method", que é geralmente declarado como um método final para evitar que as subclasses o alterem. Esse "template method" chama outros métodos (também chamados de "hook methods") que são declarados como abstratos ou com uma implementação padrão.
  2. Subclasses Concretas: Subclasses que herdam da classe abstrata e implementam os "hook methods" de acordo com as necessidades específicas da implementação.

Grande abraço! 
 Para saber mais:
Rabiscando Padrões de Projeto