Padrões de Projeto - Template Method
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:
- 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.
- 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