1
resposta

[Sugestão] Refatoração 2 - Aula substituir Array por Objeto

Fiquei na duvida em porque não utilizar props no lugar daqueles campos setados na aula. ` class Cliente { readonly int id; readonly string nome; readonly string telefone; readonly string website;

    public int Id => id;

    public string Nome => nome;

    public string Telefone => telefone;

    public string Website => website;

    public Cliente(int id, string nome, string telefone, string website)
    {
        this.id = id;
        this.nome = nome;
        this.telefone = telefone;
        this.website = website;
    }

}`

` public class Cliente {
    public int Id { get; private set; }
    public string Nome { get; private set; }
    public string Telefone { get; private set; }
    public string Website { get; private set; }

    public Cliente(int id, string nome, string telefone, string website) {
        Id = id;
        Nome = nome;
        Telefone = telefone;
        Website = website;
    }
}`
1 resposta

Olá Gabriel!

Na aula, a substituição do Array por um objeto foi feita para melhorar a organização e a orientação a objetos do código. Ao utilizar o Array, você tinha diferentes tipos de dados armazenados no mesmo Array, o que não é uma boa prática em programação orientada a objetos.

Ao substituir o Array por um objeto, você encapsula as informações do cliente em uma classe específica, o que torna o código mais legível e fácil de entender. Além disso, ao utilizar propriedades no lugar dos campos, você garante o encapsulamento dos dados e facilita a manutenção do código.

Vamos comparar as duas versões do código:

class Cliente
{
    readonly int id;
    readonly string nome;
    readonly string telefone;
    readonly string website;

    public int Id => id;

    public string Nome => nome;

    public string Telefone => telefone;

    public string Website => website;

    public Cliente(int id, string nome, string telefone, string website)
    {
        this.id = id;
        this.nome = nome;
        this.telefone = telefone;
        this.website = website;
    }
}
public class Cliente {
    public int Id { get; private set; }
    public string Nome { get; private set; }
    public string Telefone { get; private set; }
    public string Website { get; private set; }

    public Cliente(int id, string nome, string telefone, string website) {
        Id = id;
        Nome = nome;
        Telefone = telefone;
        Website = website;
    }
}

Na segunda versão do código, utilizando propriedades, você tem mais controle sobre o acesso aos dados do cliente. As propriedades têm um acesso mais restrito, o que garante que os dados não sejam alterados de forma inadequada. Além disso, a sintaxe das propriedades é mais concisa e legível.

Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer.

Espero ter ajudado e bons estudos!