Escolar Documentos
Profissional Documentos
Cultura Documentos
Professor Gilmar Borba Padres de Projeto Engenharia de Software Centrada em Mtodos geis
1. Inteno/Motivao
Permite a voc utilizar regras de negcio ou algoritmos diferentes, dependendo do contexto em que eles ocorrem.
2. Problema
A seleo de um algoritmo que precisa ser aplicado depende do cliente que faz a solicitao ou dos dados que esto sendo operados. Se voc dispe de uma regra que simplesmente no muda, no precisa de um padro Strategy.
3. Soluo
Separa a seleo de algoritmos da implementao destes. Permite que a seleo seja feita com base no contexto.
4. Participantes e colaboradores
O Strategy especifica como os diferentes algoritmos so utilizados. As classes concretStrategy implementam esses diferentes algoritmos. A classe Context utiliza a concretStrategy especfica com uma referncia do tipo Strategy. As classes Strategy e Context interagem para implementar o algoritmo escolhido(algumas vezes a classe Strategy deve questionar Context). A classe Context repassa pedidos de seu cliente para a Strategy.
5. Consequncias
O padro Strategy define uma famlia de algoritmos. Os comandos switch e/ou condicionais podem ser eliminados. Voc deve invocar todos os algoritmos da mesma maneira(eles todos devem ter a mesma interface). A interao entre as classes concretStrategy e a classe contexto pode requerer a adio de mtodos do tipo getState para a classe Context.
6. Implementao