sábado, 25 de fevereiro de 2012

Pattern: Strategy

Definição: Padrão de comportamente, utilizado quando você precisa mudar em tempo de execução o algoritmo.

Explicação: Você possui várias estratégias, e você quer escolher a estratégia que achar melhor para aquele momento. Criando uma interface e classes que implementam essa interface, é possível fazer isto.

Exemplo:
Você possui uma transportadora, e pode transportar a carga através de um caminhão ou navio, caso seja necessário atravessar um oceano, a melhor estratégia seria ir de navio, caso precise ir de um estado a outro, a melhor estratégia é levar a carga de caminhão. Dependendo do contexto em que se encontra, uma estratégia é melhor que a outra.


 
public interface Transporte {
 void carregar();
}


public class Caminhao implements Transporte{
 public void carregar() {
  System.out.println("Carregar Caminhao");
 }
}


public class Navio implements Transporte{
 public void carregar() {
  System.out.println("Carregar Navio");
 }
}


Agora é possível escolher em tempo de execução o melhor transporte que se deseja executar, sem depender de um ou outro. Obrigado.

Nenhum comentário:

Postar um comentário