• Nenhum resultado encontrado

INF011 Padrões de Projeto. 25 Template Method

N/A
N/A
Protected

Academic year: 2022

Share "INF011 Padrões de Projeto. 25 Template Method"

Copied!
17
0
0

Texto

(1)

INF011 – Padrões de Projeto – Graduação Tecnológica em Análise e Desenvolvimento de Sistemas – Sandro S. Andrade

INF011 – Padrões de Projeto 25 – Template Method

Sandro Santos Andrade

[email protected]

Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica

Graduação Tecnológica em Análise e Desenvolvimento de Sistemas

(2)

Template Method

 Propósito:

Definir um arcabouço de um algoritmo sob a forma de um método, deixando que alguns passos sejam

implementados por sub-classes

As sub-classes podem redefinir certos passos de um

algoritmo sem modificar a sua estrutura geral

(3)

INF011 – Padrões de Projeto – Graduação Tecnológica em Análise e Desenvolvimento de Sistemas – Sandro S. Andrade

Template Method

 Motivação:

Application Framework para editores de documentos

(4)

Template Method

 Aplicabilidade:

Para implementar uma única vez as partes invariantes de um algoritmo e deixar que sub-classes implementem o comportamento que varia

Quando um comportamento comum entre sub-classes

deve ser fatorado e localizado em uma classe comum, com o objetivo de evitar repetição de código

Para controlar as extensões realizadas pelas sub-classes.

O Template Method pode definir operações hook em

pontos específicos e, portanto, permitindo variações

somente nestes locais

(5)

INF011 – Padrões de Projeto – Graduação Tecnológica em Análise e Desenvolvimento de Sistemas – Sandro S. Andrade

Template Method

 Estrutura:

(6)

Template Method

 Participantes:

AbstractClass (Application):

Declara operações primitivas abstratas a serem definidas por sub-classes ao implementar os passos do algoritmo

Implementa o Template Method definindo o arcabouço do algoritmo. Este Template Method invoca tanto as

operações primitivas quanto operações concretas de AbstractClass ou de outros objetos

ConcreteClass (MyApplication):

Implementa as operações primitivas, executando os

passos do algoritmo específicos desta sub-classe

(7)

INF011 – Padrões de Projeto – Graduação Tecnológica em Análise e Desenvolvimento de Sistemas – Sandro S. Andrade

Template Method

 Colaborações:

ConcreteClasses esperam que AbstractClass implemente

os passos invariantes do algoritmo

(8)

Template Method

 Consequências:

Template Methods são uma técnica fundamental para viabilizar a reutilização de código

Conduzem a uma estrutura de Inversão de Controle

Template Methods podem invocar os seguintes tipos de métodos:

Operações concretas (da sua própria classe ou de outros objetos)

Operações primitivas (métodos abstratos) – Devem ser Sobrepostas

Factory Methods

Métodos hook (métodos de AbstractClass com

implementações default mas que podem ser sobrepostos

pelas sub-classes) – Podem ser sobrepostas

(9)

INF011 – Padrões de Projeto – Graduação Tecnológica em Análise e Desenvolvimento de Sistemas – Sandro S. Andrade

Template Method

 Consequências:

Aplicação dos métodos hook (ANTES)

(10)

Template Method

 Consequências:

Aplicação dos métodos hook (DEPOIS)

(11)

INF011 – Padrões de Projeto – Graduação Tecnológica em Análise e Desenvolvimento de Sistemas – Sandro S. Andrade

Template Method

 Implementação:

Utilizando o controle de acesso do C++

As operações primitivas devem ser declaradas como métodos protected

As operações primitivas devem ser virtuais puras

O Template Method não deve poder ser sobreposto. Para isso, ele deve ser declarado como não-virtual

Minimizando operações primitivas

É desejável minimizar o número de operações primitivas que sub-classes devem ter de implementar

Quanto mais métodos precisem ser sobrepostos maior o

trabalho para os usuários do Template Method

(12)

Template Method

 Implementação:

Padronização para nomes

Pode-se padronizar as operações a serem redefinidas

utilizando-se um determinado prefixo, por exemplo, do*

(13)

INF011 – Padrões de Projeto – Graduação Tecnológica em Análise e Desenvolvimento de Sistemas – Sandro S. Andrade

Template Method

 Código exemplo:

(14)

Template Method

 Código exemplo:

(15)

INF011 – Padrões de Projeto – Graduação Tecnológica em Análise e Desenvolvimento de Sistemas – Sandro S. Andrade

Template Method

 Usos conhecidos:

Na maioria das classes abstratas

Application Frameworks

(16)

Template Method

 Padrões relacionados:

Factory Methods são frequentemente chamados por Template Methods

Template Methods usam herança para variar partes de um

algoritmo. Strategies usam delegação para variar todo o

algoritmo

(17)

INF011 – Padrões de Projeto – Graduação Tecnológica em Análise e Desenvolvimento de Sistemas – Sandro S. Andrade

INF011 – Padrões de Projeto 25 – Template Method

Sandro Santos Andrade

[email protected]

Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica

Graduação Tecnológica em Análise e Desenvolvimento de Sistemas

Referências

Documentos relacionados

Os requerentes exercem posse mansa e pacifica sobre imóvel situado na Rua..., assentado no registro imobiliário da Circunscrição com a descrição de Lotes nºs

1 - Os municípios são responsáveis pela recolha dos OAU, no caso de se tratar de resíduos urbanos cuja produção diária não exceda 1100 l por produtor. 2 - Para efeitos do disposto

Como conceito chave de uma condição do conhecimento, concebemos por aquilo que de certa forma, constituímos o ser - no - mundo pelo fato de que, outrora se disse de uma ação que

(Enem 2015) Não nos resta a menor dúvida de que a principal contribuição dos diferentes tipos de movimentos sociais brasileiros nos últimos vinte anos foi no plano da reconstrução

Com a confirmação da especificidade do anticorpo contra a proteína TcRBP9A, foram realizados imunoensaios, como ensaio de western blot para verificar o padrão de

Sendo direcionada a geradores que utilizem fontes renováveis de energia, além de eólica, a norma também é válida para geração hídrica, solar, biomassa e cogeração

e) A defesa do projeto constará de apresentação frente à comissão examinadora (no máximo 20 minutos), seguida de arguição, de acordo com agenda a ser