Diversos
Leonardo Gresta Paulino Murta leomurta@ic.uff.br
Agenda
• Introdução • Estilo MVC • Padrões
– – – – – – – – – Expert Creator Controller Low Coupling High Cohesion Polymorphism Pure Fabrication Indirection Don’t Talk to Strangers
Padrões GRASP 2
Leonardo Murta
Introdução
• A qualidade de um projeto orientado a objetos está fortemente relacionada com a distribuição de responsabilidades • As responsabilidades de um projeto podem ser divididas em
“conhecer” e “fazer”
– As responsabilidades “conhecer” estão relacionadas à distribuição das características do sistema entre as classes
– As responsabilidades “fazer” estão relacionadas com a distribuição do comportamento do sistema entre as classes
Leonardo Murta
Padrões GRASP
3
Introdução
• A principal característica da atribuição de responsabilidades está em não sobrecarregar os objeto com responsabilidades que poderiam ser delegadas
– O objeto só deve fazer o que está relacionado com a sua abstração. Para isso, delega as demais atribuições para quem está mais apto a fazer – Quando o objeto não sabe quem é o mais apto, pergunta para algum outro
objeto que saiba
Leonardo Murta
Padrões GRASP
4
Introdução
• Os princípios de projeto fornecem os fundamentos necessários para o entendimento de o que é um bom projeto • Entretanto, não é retratado claramente como se pode obter um
bom projeto
• Para facilitar o entendimento de como fazer um bom projeto, esse conhecimento foi codificado na forma de padrões
Leonardo Murta
Padrões GRASP
5
Introdução
• Padrões descrevem, em um formato estruturado, um problema e uma possível solução para este problema • Padrões não são criados, são descobertos!
– A solução descrita foi aplicada com sucesso por especialistas da área inúmeras vezes, podendo ser considerada uma boa solução
• As principais utilidades de um padrão estão relacionadas com
– Formalização e propagação do conhecimento – Uniformização