Você está na página 1de 3

CENTRO UNIVERSITRIO DE BELO HORIZONTE UMA Fabrcio dos Reis Geraldo Arajo Julio Cezar da Silva Richard Alves

Padres de Projeto - Strategy

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

Você também pode gostar