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