2
respostas

Resposta - Modelando um produto digital com informações técnicas

class ProdutoDigital
{
    public String Nome;
    public double Preco;
    public InformacaoTecnica InfoTecnica;

    public ProdutoDigital(string nome, double preco, InformacaoTecnica infoTecnica)
    {
        Nome = nome;
        Preco = preco;
        InfoTecnica = infoTecnica;
    }

    public void ExibirDetalhes()
    {
        Console.WriteLine($""""
            Produto: {Nome}
            Preco: {Preco:c}
            Tamanho: {InfoTecnica.TamanhoMB}MB
            Compativel com: {InfoTecnica.SistemaOperacional}

            """");
    }

}
class InformacaoTecnica
{
    public InformacaoTecnica(int tamanhoMB, string sistemaOperacional)
    {
        TamanhoMB = tamanhoMB;
        SistemaOperacional = sistemaOperacional;
    }

    public int TamanhoMB {get; set;}
    public string SistemaOperacional { get; set; }
}
2 respostas
#region
InformacaoTecnica info = new InformacaoTecnica(1500, "Windows/Mac");
ProdutoDigital produto = new ProdutoDigital("Photoshop", 89.99, info);
produto.ExibirDetalhes();

#endregion

Oi, Ulysses! Como vai?

Do jeito que você explicou, chamou atenção a boa separação de responsabilidades entre ProdutoDigital e InformacaoTecnica, usando composição para manter o modelo organizado e fácil de evoluir. Como você centralizou a exibição dos dados no método ExibirDetalhes deixa o uso da classe mais claro.

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