Padrões para Atribuições de Responsabilidades
• Motivação
Más escolhas de atribuição de responsabilidades geram sistemas e componentes frágeis e de difícil manutenção, extensão e reutilização.
• Quando utilizar?
Padrões são utilizados durante a criação dos diagramas de interação
• O que são Padrões?
Princípios, estilos e regras de programação, codificados em um formato estruturado, descrevendo problema/solução
Um Padrão é um par nomeado problema/solução, que pode ser utilizado em novos contextos, com conselhos sobre como utilizá-lo em novas situações.
O que não são Padrões?
Novos princípios da Engenharia de Software. Ao contrário, padrões tentam codificar o conhecimento, idiomas e princípios existentes
• Responsabilidades e Métodos
Responsabilidade - contrato ou obrigação de uma classe
Métodos - utilizados para implementar Responsabilidades
• Tipos de Responsabilidades:
Fazer – ele próprio; iniciar ações em outros objetos; controlar atividades em outros objetos
Conhecer – dados privados; objetos relacionados; coisas que pode calcular e derivar. São dedutíveis do modelo Conceitual
• O que são os Padrões GRASP ?
Princípios fundamentais de atribuição de responsabilidades a objetos
• Cinco Padrões que abordam questões mais comuns:
Expert (Especialista)
Creator (Criador)
High Cohesion (Coesão Alta)
Controller (Controlador)
Low Coupling (Acoplamento Fraco)
Padrão Expert – Especialista
Solução: atribui a responsabilidade ao especialista da informação
Exemplo: Aplicação de Ponto de Venda – Qual a classe que deve conhecer o total de venda?
É necessário conhecer todas as instâncias de ítem de venda e a soma de seus subtotais
A Classe VENDA é a especialista para o Total da Venda
Que informações são necessárias para determinar o total de um ítem de venda?
ItemVenda.Quantidade
Produto.Preço
ÍtemVenda conhece sua quantidade e seus Produtos associados
Ítem Venda é o especialista para