Comum · Saberes
Template Method
Um Template Method auxilia na definição de um algoritmo com partes do mesmo definidos por métodos abstratos. As subclasses devem se responsabilizar por estas partes abstratas, deste algoritmo, que serão implementadas, possivelmente de várias formas.
Na Wikipédia
Um Template Method auxilia na definição de um algoritmo com partes do mesmo definidos por métodos abstratos. As subclasses devem se responsabilizar por estas partes abstratas, deste algoritmo, que serão implementadas, possivelmente de várias formas. Cada subclasse implementa de acordo com suas necessidades, oferecendo um comportamento concreto e construindo todo o algoritmo. No contexto da programação orientada a objetos, o Template Method é um dos padrões de projeto comportamentais identificados pela Gangue dos Quatro (The Gang Of Four) no livro Design Patterns. O Template Method é um método em uma superclasse, geralmente uma superclasse abstrata, que define a estrutura de uma operação em termos de vários passos de alto nível. Esses passos são implementados por métodos auxiliares adicionais na mesma classe do método template. O Template Method fornece uma estrutura fixa de um algoritmo. Essa parte fixa deve estar presente na superclasse, sendo obrigatória uma classe abstrata que possa conter um método concreto, pois em uma interface só é possível conter métodos abstratos que definem um comportamento. Essa é a vantagem de ser uma classe abstrata, pois ela também fornece métodos abstratos às suas subclasses, que por sua vez herdam este método por herança e devem implementar os métodos abstratos, fornecendo um comportamento concreto aos métodos definidos como abstratos. Com isso, certas partes do algoritmo são preenchidas por implementações variadas, permitindo que subclasses redefinam ou personalizem a operação substituindo os métodos abstratos ou os métodos hook, que têm corpos vazios na superclasse. O intuito do Template Method é definir a estrutura geral da operação, permitindo que subclasses refinem ou redefinam certos passos.
Texto: Wikipédia, CC BY-SA 4.0. · Imagem: Giacomo Ritucci (CC BY-SA 3.0) ·
Cartas próximas
-
L★★
Linguagem de programação multiparadigma
-
★★
Observer
-
M★
Método de Cross
-
★★★
C4 model
Lean graphical notation technique for modelling architecture of software systems
-
★★★
Desenvolvimento ágil de software
Um grupo de métodos de desenvolvimento incremental e iterativo
-
★★
Algoritmo de Knuth-Morris-Pratt
-
★★
Visitor Pattern
-
P★
Programação baseada em protótipos
-
★★★
Programação estruturada
-
C★
Chain of Responsibility
-
C★
Capability Maturity Model
-
★★★
Método de Trachtenberg
Método para facilitar cálculos metais
-
A★
Algoritmo de Tomasulo
-
T★★
Tipo abstrato de dado
-
A★
Algoritmo de Coppersmith-Winograd
-
★★★★
Método Paulo Freire
Método de alfabetização de adultos
-
★★
Algoritmo de Kruskal
-
★★★★
Debug com Pato de Borracha
Técnica de depuração