Olá tudo joia?
Tenho uma sugestão para o curso de Testes em .NET: criando testes de unidade com xUnit. Melhor o exemplo da aplicação do desconto, pois toda vezes que for alterado o valor da propriedade Desconto o preco vai ser alterado e nunca teremos o preco original.
Segue minha sugestão:
public double Preco
{
get => preco;
set
{
preco = value;
AtualizarPrecoAplicandoDesconto();
}
}
public double Desconto
{
get => desconto;
set
{
desconto = value;
AtualizarPrecoAplicandoDesconto();
}
}
private void AtualizarPrecoAplicandoDesconto()
{
if (desconto >= preco)
{
preco *= (1 - DESCONTO_MAXIMO);
}
else
{
preco -= desconto;
}
}