public Robo(INavegacao navegacao) { // De acordo com sentido de sua frente o robo muda de comportamento dinamicamente alterando sua classe (State Pattern) _navegacao = navegacao; string sentido = _navegacao.GetSentido(); switch (sentido.ToUpper()) { case Facing.North: Direcao = new Norte(_navegacao); break; case Facing.East: Direcao = new Leste(_navegacao); break; case Facing.South: Direcao = new Sul(_navegacao); break; case Facing.West: Direcao = new Oeste(_navegacao); break; } }
public Oeste(INavegacao posicao) { _posicao = posicao; }
public Sul(INavegacao posicao) { _posicao = posicao; }
public Norte(INavegacao posicao) { _posicao = posicao; }