| wikipedia |
Exemplo: Uma classe carro possui dois estados, estado andando e parado, quando o carro executa o método handle() , ele alterna entre Andando e Parado.
public class Carro {
private Estado estado;
public Carro(Estado estado) {
this.estado = estado;
}
public void handle() {
estado.handle(this);
}
public Estado getEstado() {
return estado;
}
public void setEstado(Estado estado) {
this.estado = estado;
}
}
public interface Estado {
void handle(Carro carro);
}
public class Andando implements Estado {
@Override
public void handle(Carro carro) {
carro.setEstado(new Parado());
}
}
public class Parado implements Estado{
@Override
public void handle(Carro carro) {
carro.setEstado(new Andando());
}
}
Utilizando o código criado, iniciamos o carro com um estado e cada vez que chamamos o método handle desse carro, o seu estado é alterado.
public static void main(String[] args) {
Carro carro = new Carro(new Parado());
carro.handle();
}
Obrigado

Nenhum comentário:
Postar um comentário