domingo, 15 de abril de 2012

Padrão de Projeto Expert

         O padrão Expert faz parte dos padrões de projeto classificados como GRASP. O objetivo dele é atribuir determinada responsabilidade a uma classe. Deve ser observada a classe que tem as informações relevantes para desempenhar a responsabilidade.

Tomemos como exemplo um sistema PDV (ponto de venda), onde gostaríamos de atribuir a responsabilidade “cálculo do total de um pedido” à uma classe.  Observamos então, em nosso sistema, qual a classe “expert” das informações necessárias para a obtenção desse total e a ela será delegada essa responsabilidade.


Dentro deste contexto, a classe “expert” do conteúdo relevante à obtenção da informação desejada é a “Pedido”, pois ela possui a lista de produtos que serão utilizados para o cálculo do valor total do pedido. Portanto, a ela será designada a responsabilidade “cálculo do total de um pedido”.



Benefícios:
– Leva a projetos onde o objeto de software faz o que o objeto real faria
– Mantém o encapsulamento e não aumenta o acoplamento, pois utiliza informações próprias
– Distribui o comportamento uniformemente entre as classes do sistema, aumentando a coesão das mesmas


Sinônimos:
– Colocar responsabilidades com os dados
– Aquele que conhece faz
– Quem sabe faz
– Animação
– Fazê-lo eu mesmo
– Colocar os serviços com os atributos que eles utilizam
– Especialista na informação



Referências:

• MURTA, L. G. P. – “Aula Padrões de Projeto GRASP” - Universidade Federal Fluminense  - RJ, 2007
• Craig Larman, 1999, “Utilizando UML e Padrões”, 1ª ed., Prentice-Hall
• Craig Larman, 2007, “Utilizando UML e Padrões”, 3ª ed., Bookman. 

Postado por: Hélio Marcus, ADS - 6º Período

Nenhum comentário:

Postar um comentário