PAdrao GRASP
Professor: Baldoino Fonseca
Agradecimento dos Slides: Hyggo Almeida
Instituto de Computação – UFAL
O que vimos na última aula? n Introdução a padrões
¨ O que são?
¨ Por que utilizá-los?
n
Padrões GRASP
¨ O que são?
¨ Quais serão apresentados na disciplina?
GRASP
2
Instituto de Computação – UFAL
O que veremos hoje? n Padrões GRASP
¨ Expert
¨ Creator
¨ Low Coupling
¨ High Cohesion
GRASP
3
Instituto de Computação – UFAL
Expert n Problema
¨ Qual
o principio geral para associar responsabilidades a objetos?
¨ Centenas ou milhares de classes
¨ Com milhares de responsabilidades que precisam ser implementadas ¨ As decisões influenciarão fortemente a qualidade do design n
Solução
¨ Atribua
a responsabilidade a quem possui a informação GRASP
4
Instituto de Computação – UFAL
Expert - Exemplo n Exemplo: Terminal Ponto de Venda (TPDV)
¨ Responsabilidade: n Quem deveria ser responsável pelo conhecimento do total de uma venda?
¨ Qual
a classe de objetos que contém as informações necessárias para determinar o total?
GRASP
5
Instituto de Computação – UFAL
Expert n Solução: Padrão Expert
¨ A classe que possui a informação necessária para determinar o total Adiciona-se método total()
Venda data Precisamos de todos os itens!
*
ItemVenda
quantidade
Qual a informação necessária para saber o total da venda???
EspecificaçãoProduto
*
descrito por
GRASP
descrição preço 6
Instituto de Computação – UFAL
Expert
Algoritmo para o método total()
Venda data total()
Especialista sobre ItemVenda
Para cada ItemVenda...
Recupera a EspecificaçãoProduto
Recupera preço e quantidade do produto
Calcula subtotal
Soma ao total
Fim-Para
Retorna total
*
ItemVenda
quantidade
EspecificaçãoProduto
*
descrito por
Adiciona-se método subtotal()
descrição