1
resposta

[Projeto] Faça como eu fiz: dispositivos com sensores

Resolução:
ISensor.cs

namespace PraticandoC_05.DispositivosComSensores06
{
    internal interface ISensor
    {
        void Ativar();
        void Desativar();
    }
}

SensorPresenca.cs

namespace PraticandoC_05.DispositivosComSensores06
{
    internal class SensorPresenca : ISensor
    {
        public void Ativar()
        {
            Console.WriteLine("Sensor de presença ativado.");
        }

        public void Desativar()
        {
            Console.WriteLine("Sensor de presença desativado.");
        }
    }
}

SensorTemperatura.cs

namespace PraticandoC_05.DispositivosComSensores06
{
    internal class SensorTemperatura : ISensor
    {

        public void Ativar()
        {
            Console.WriteLine("Sensor de temperatura ativado.");
        }

        public void Desativar()
        {
            Console.WriteLine("Sensor de temperatura desativado.");
        }
    }
}

Program.cs

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

temp.Ativar();
temp.Desativar();
Console.WriteLine();
presenca.Ativar();
presenca.Desativar();
1 resposta

Olá, Christopher! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

A sua resolução ficou bem organizada: a interface ISensor define um contrato claro, e as classes SensorPresenca e SensorTemperatura implementam os métodos Ativar() e Desativar() de forma simples e direta. Uma dica interessante para o futuro é usar uma lista de sensores para ativar e desativar todos com um único laço, aproveitando o polimorfismo da interface ISensor:

List<ISensor> sensores = new()
{
    new SensorTemperatura(),
    new SensorPresenca()
};

foreach (ISensor sensor in sensores)
{
    sensor.Ativar();
    sensor.Desativar();
}

Esse código cria uma lista com sensores diferentes e executa os mesmos métodos em todos eles, sem precisar chamar cada objeto separadamente.

Na sua visão, isolar as assinaturas dos métodos em uma interface abstrata ajudou a manter a construção dos diferentes sensores focada em uma única responsabilidade de forma mais organizada?

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