Refatorando classes para utilizar Primary Constructor no .NET 8
Uma novidade para facilitar a vida do desenvolvedor implementada a partir do .NET 8 é o conceito de construtor primário (Primary constructor).
É simplesmente uma mudança na forma como declaramos classes e structs, montando já na sua declaração um construtor
public readonly class Distance(double dx, double dy)
{
public readonly double Magnitude { get; } = Math.Sqrt(dx * dx + dy * dy);
public readonly double Direction { get; } = Math.Atan2(dy, dx);
}
Observem que na mesma linha onde é feita a declaração da classe, já temos entre parênteses os parâmetros do seu construtor, e as variáveis ali recebidos estarão disponíveis para toda a classe!
Para testar o conceito, resolvi refatorar uma classe de serviços, que tem uma implementação bem tradicional
Vejam o detalhe em que temos que ter um construtor (linha 14), onde são recebidos os parâmetros através de injeção de dependência e depois repassados para as variáveis readonly das linhas 12 e 13 nas linhas 16 e 17.
Agora de outra forma, refatorei a mesma classe, utilizando Primary constructor
Vejam que com construtor primário, não precisamos ter o construtor como tinhamos antes, e já podemos receber a injeção de dependência no construtor primário (na linha da declaração da classe), outro ponto é que uma vez declarados ali os serviços podem ser utilizados dentro da classe, sem termos que declarar.
Também no caso da configuração onde foi recebido o “IOptions” das credenciais, optei por manter a propriedade na linha 12, passando a referência do objeto recebido no construtor primário.
Muito mais simples não é ? E você, já tentou refatorar suas classes?
Ah, mas isso vai acabar com os construtores ? Não !
Vejam nesta implementação que podemos ter o construtor primário sim, e também construtores diferentes, porém, seremos obrigados a repassar para o construtor primário os parâmetros através da instrução “this”, caso contrário teremos um problema de compilação.
Portanto ainda temos a flexibilidade anterior para utilizar construtores tradicionais.
Gostou do artigo? clique no ícone👏e me siga para ver as próximas publicações !! Quer ver mais conteúdos, acesse minhas redes através do Linktree: https://linktree.com/nizzola