Um sistema O.O. é composto por vários objetos que colaboram entre si, trocando "mensagens" para satisfazer aos requisitos do sistema proposto, o planejamento de como dividir as responsabilidades entre os objetos é essencial para obter um sistema fácil de entender, robusto, reutilizável e extensível.
GRASP: ajuda a definir as responsabilidades, o seu estudo possibilita entender os princípios de um bom projeto O.O.
Responsabilidades: São as descrições do que os objetos tem de fazer, os métodos são as implementações das responsabilidades.
Obs: nem sempre uma responsabilidade é satisfeita somente por um método, grandes responsabilidades são divididas para manter a coesão da Classe.
Os principais padrões GRASP:
- Especialista
- Criador
- Coesão alta
- Acoplamento fraco
- Controlador
Especialista na Informação:
Problema: Qual é o princípio geral para a atribuição de responsabilidades aos objetos?
Solução: Atribua a responsabilidade ao especialista: a classe que tem as informações necessárias para assumir a responsabilidade.
Benefícios: O encapsulamento da informação é mantido uma vez que os objetos usam seus próprios dados para realizar as tarefas.
Isto normalmente leva a um baixo acoplamento entre as classes.
O comportamento do sistema é distribuído entre as classes que têm as informações, encorajando a definição de classes mais "leves", mais fáceis de entender e de manter.
Contradição: Em algumas situações, a solução sugerida pelo especialista pode ser indesejada, por às vezes causar baixa coesão.
1 comentários:
- At 20 de fev. de 2008, 11:20:00 Jaime Willian Fischer da Silva said...
-
Eae hacker...Seu blog ta massa!! hehehe
Abraço!
