Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Faça como eu fiz: dispositivos com sensores

ISensor.cs

namespace Sensor.Modelos;
interface ISensor {
    void Ativar();
    void Desativar();
}

SensorTemperatura.cs

namespace Sensor.Modelos;

class SensorTemperatura : ISensor {
    public void Ativar() {
        Console.WriteLine("Ativando o sensor de temperatura...");
        Thread.Sleep(1000);
        Console.WriteLine("Sensor ativado!");
    }

    public void Desativar() {
        Console.WriteLine("Desligando o sensor de temperatura...");
        Thread.Sleep(300);
        Console.WriteLine("Sensor desligado!");
    }
}

SensorPresenca.cs

namespace Sensor.Modelos;

class SensorPresenca : ISensor {
    public void Ativar() {
        Console.WriteLine("Ativando o sensor de presença...");
        Thread.Sleep(2500);
        Console.WriteLine("Sensor ativado!");
    }

    public void Desativar() {
        Console.WriteLine("Desligando o sensor de presença...");
        Thread.Sleep(300);
        Console.WriteLine("Sensor desligado!");
    }
}

Program.cs

using Sensor.Modelos;

SensorTemperatura temp = new SensorTemperatura();
SensorPresenca presenca = new SensorPresenca();

Console.Clear();
temp.Ativar();
Console.WriteLine("");
temp.Desativar();
Console.WriteLine("\nPressione qualquer tecla para continuar.");
Console.ReadKey();

Console.Clear();
presenca.Ativar();
Console.WriteLine("");
presenca.Desativar();
1 resposta
solução!

Oi, Diego! Como vai?

Agradeço por compartilhar.

Gostei da sua implementação, ficou bem organizada e alinhada com o conceito de interfaces e composição, separando bem os comportamentos dos sensores. Você aplicou corretamente o contrato da interface ISensor, o que mostra uma boa compreensão de reutilização e padronização de comportamento.

Continue praticando esse tipo de estrutura, pois ela é muito útil em projetos maiores.

Dica: você pode melhorar ainda mais usando uma variável do tipo ISensor no Program.cs, assim consegue trabalhar de forma mais genérica. Por exemplo: declare ISensor sensor = new SensorTemperatura(); e depois troque para outros sensores sem alterar o restante do código. Isso ajuda a deixar o sistema mais flexível.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!