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