コード例 #1
0
 public void Notify(CoresSemaforo cor)
 {
     foreach (IObserver observer in Observers)
     {
         observer.Update(cor);
     }
 }
コード例 #2
0
 public void Update(CoresSemaforo cor)
 {
     if (OnSemaforoColorUpdated != null)
     {
         OnSemaforoColorUpdated(cor);
     }
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
        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);
        }
コード例 #6
0
 public void Acionar(CoresSemaforo cor)
 {
     Update(cor);
 }