-
Padrões GRASP
Padrões
– Expert – Creator – Controller – Low Coupling – High Cohesion – Polymorphism – Pure Fabrication – Indirection – Don’t Talk to Strangers
Problema
Como minimizar dependências e maximizar o reuso?
O acoplamento é uma medida de quão fortemente uma classe está conectada, possui conhecimento ou depende de outra classe
Com fraco acoplamento, uma classe não é dependente de muitas outras classes
Com uma classe possuindo forte acoplamento, temos os seguintes problemas:
Mudanças a uma classe relacionada força mudanças locais à classe
A classe é mais difícil de entender isoladamente
A classe é mais difícil de ser reusada, já que depende da presença de outras classes
Solução
Atribuir responsabilidades de forma a minimizar o acoplamento
FONTE
http://www.dsc.ufcg.edu.br/~jacques/cursos/apoo/html/proj1/proj5.htm
http://www2.ic.uff.br/~leomurta/courses/2008.2/es1/aula13.pdf
-
Baixo acoplamento
O acoplamento é uma medida de quão forte um elemento está conectado, tem conhecimento ou depende de outros elementos. O baixo acoplamento é um padrão de avaliação que determina como atribuir responsabilidades de suporte:
menor dependência entre as classes, mudança em uma classe com menor impacto em outras, maior potencial de reutilização.
-
Os padrões GRASP englobam uma série de princípios baseados em conceitos de Orientação a Objetos. Partindo de análises que procuram definir quais as obrigações dos diferentes tipos de objetos em uma aplicação, estes patterns disponibilizam uma série de recomendações que procuram favorecer a obtenção de sistemas melhor estruturados.
Ao todo são nove os padrões GRASP:
· Criador (Creator);
· Especialista na Informação (Information Expert);
· Baixo Acoplamento (Low Coupling);
· Alta Coesão (High Cohesion);
· Controlador (Controller);
· Polimorfismo (Polymorphism);
· Fabricação/Invenção Pura (Pure Fabrication);
· Indireção (Indirection);
· Variações Protegidas (Protected Variations).
O acoplamento significa o quanto uma classe depende da outra para funcionar.
Quanto mais baixo melhor, isto é, quanto menos "amarradas" as classes menor o acoplamento.