public void Notify(CoresSemaforo cor) { foreach (IObserver observer in Observers) { observer.Update(cor); } }
public void Update(CoresSemaforo cor) { if (OnSemaforoColorUpdated != null) { OnSemaforoColorUpdated(cor); } }
private static void Initialize() { SemaforoVeiculo semaforoVeiculo = new SemaforoVeiculo(); SemaforoPedestre semaforoPedestre = new SemaforoPedestre(); Pedestre pedestreA = new Pedestre(); Pedestre pedestreB = new Pedestre(); Pedestre pedestreC = new Pedestre(); Veiculo veiculoA = new Veiculo(); Veiculo veiculoB = new Veiculo(); Veiculo veiculoC = new Veiculo(); semaforoVeiculo.Subscribe(semaforoPedestre); semaforoVeiculo.Subscribe(veiculoA); semaforoVeiculo.Subscribe(veiculoB); semaforoVeiculo.Subscribe(veiculoC); semaforoPedestre.Subscribe(pedestreA); semaforoPedestre.Subscribe(pedestreB); semaforoPedestre.Subscribe(pedestreC); CoresSemaforo cor = CoresSemaforo.Verde; do { Console.WriteLine("Escolha 1 para Verde, 2 para Amarelo e 3 para Vermelho ou 0 para sair."); string color = Console.ReadLine(); cor = (CoresSemaforo)int.Parse(color); semaforoVeiculo.Notify(cor); semaforoPedestre.Notify(cor); } while (cor != CoresSemaforo.Unknown); }
public void Update(CoresSemaforo cor) { switch (cor) { case CoresSemaforo.Amarelo: FicarAlerta(); break; case CoresSemaforo.Vermelho: Andar(); break; case CoresSemaforo.Verde: Parar(); break; default: Parar(); break; } }
private static void Initialize() { Semaforo semaforo = new Semaforo(); Carro carro = new Carro(); Carro carroFiat = new Carro(); Moto moto = new Moto(); semaforo.OnSemaforoColorUpdated += carro.Update; semaforo.OnSemaforoColorUpdated += moto.Update; semaforo.OnSemaforoColorUpdated += carroFiat.Update; semaforo.Acionar(CoresSemaforo.Verde); CoresSemaforo cor = CoresSemaforo.Verde; do { Console.WriteLine("Escolha 1 para Verde, 2 para Amarelo e 3 para Vermelho ou 0 para sair."); string color = Console.ReadLine(); cor = (CoresSemaforo)int.Parse(color); semaforo.Acionar(cor); } while (cor != CoresSemaforo.Unknown); }
public void Acionar(CoresSemaforo cor) { Update(cor); }