SensorBase.cs
namespace E06DispositivosComSensores.Models;
internal abstract class SensorBase(string identificacao, string tipo)
{
public string Identificacao { get; } = identificacao;
public string Tipo { get; } = tipo;
public bool Ativo { get; private set; } = false;
protected void AlterarEstado()
{
Ativo = !Ativo;
}
}
ISensor.cs
namespace E06DispositivosComSensores.Interfaces;
interface ISensor
{
void Ativar();
void Desativar();
}
SensorDePresenca.cs
using E06DispositivosComSensores.Interfaces;
namespace E06DispositivosComSensores.Models;
internal class SensorDePresenca(string identificacao, string tipo) : SensorBase(identificacao, tipo), ISensor
{
public void Ativar()
{
AlterarEstado();
Console.WriteLine($"Sensor de {Tipo} [{Identificacao}] {(Ativo ? "Ativado" : "Desativado")}");
}
public void Desativar()
{
AlterarEstado();
Console.WriteLine($"Sensor de {Tipo} [{Identificacao}] {(Ativo ? "Ativado" : "Desativado")}");
}
}
SensorDeTemperatura.cs
using E06DispositivosComSensores.Interfaces;
namespace E06DispositivosComSensores.Models;
internal class SensorDeTemperatura(string identificacao, string tipo) : SensorBase(identificacao, tipo), ISensor
{
public void Ativar()
{
AlterarEstado();
Console.WriteLine($"Sensor de {Tipo} [{Identificacao}] {(Ativo ? "Ativado" : "Desativado")}");
}
public void Desativar()
{
AlterarEstado();
Console.WriteLine($"Sensor de {Tipo} [{Identificacao}] {(Ativo ? "Ativado" : "Desativado")}");
}
}
Program.cs
using E06DispositivosComSensores.Models;
SensorDePresenca sensorDePresenca = new("S-043 corredor central","presença");
SensorDeTemperatura sensorDeTemperatura = new("S-008 sala RH","temperatura");
sensorDePresenca.Ativar();
sensorDePresenca.Desativar();
sensorDeTemperatura.Ativar();
sensorDeTemperatura.Desativar();