1
resposta

[Dúvida] Construtor Classe Unit

Bom dia! Fiquei com uma dúvida na Aula 03: pq foi implementado o método DataRowToUnit na classe unit ao invés de um construtor recebendo o parâmetro DataRow?

No primeiro caso, precisamos instanciar um Unit dentro da própria classe Unit, o que achei confuso. No segundo caso, ficaria assim:

        public Unit(DataRow dr)
        {

            this.Id = dr["Id"].ToString();
            this.Nome = dr["Nome"].ToString();
            .
            .
            .

        }

Quais as implicações de fazer de um ou de outro jeito?

1 resposta

Olá, Carolina! Tudo joia?

Ambas as abordagens têm suas vantagens e implicações.

Utilizar um método como DataRowToUnit para converter um DataRow em uma instância de Unit pode ajudar a manter o construtor da classe mais limpo e focado apenas na inicialização básica, sem depender diretamente de uma estrutura de dados específica como DataRow.

Isso pode ser útil para separar as responsabilidades, onde a conversão de dados é tratada externamente e o construtor se mantém focado na inicialização dos valores internos da classe.

Por outro lado, implementar um construtor que aceite um DataRow pode tornar o código mais direto e fácil de entender, como você mencionou. Isso coloca a responsabilidade de interpretar o DataRow diretamente dentro da classe Unit, o que pode ser mais conveniente se essa operação for muito comum e específica para o contexto em que a classe Unit é utilizada.

A escolha entre um método e um construtor pode depender de vários fatores, como coesão da classe, reutilização do código e testabilidade. No seu caso, se você achar que integrar o construtor com a capacidade de interpretar DataRow torna o código mais claro e mantém tudo mais organizado para o seu cenário de uso, essa pode ser a abordagem preferível.

No entanto, se a conversão de DataRow para Unit for algo que possa ser reutilizado em outros contextos ou se você quiser manter o construtor da classe Unit mais genérico e focado, manter o método DataRowToUnit separado pode ser mais vantajoso.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software