Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Quando utilizar data class?

Entendi que data class são classes que temos algumas facilidades quando às utilizamos, porém quando estou codificando, quando sei o melhor momento para utilizar elas? Fiz alguas pesquisas e não podemos utilizar elas para aplicar regras de negócio ou qualquer coisa do gênero, porém ainda estou com esse pulga atrás da orelha.

Utilizamos como um DTO? Utilizamos para que possamos construir objeto de maneira mais segura? Utilizamos para que seja uma camada de validação antes de chegar de fato em uma camada mais profunda podendo acarretar em erros?

Enfim, gostaria de saber, quando estamos tratamento de um projeto real quando eu sei qual é o melhor momento de utilizar data class ou classe normal.

2 respostas
solução!

Olá Leonardo! Como vai?

As data classes são ideais para casos em que você precisa criar classes cujo principal propósito é armazenar dados de forma concisa. Elas automaticamente fornecem funcionalidades como equals(), hashCode(), toString(), entre outros métodos úteis, que são especialmente valiosos quando se lida com objetos que servem principalmente como estruturas de dados.

Aqui estão algumas situações em que você pode considerar usar data classes:

  1. DTOs (Data Transfer Objects): Quando você está transferindo dados entre diferentes camadas de sua aplicação ou entre diferentes aplicações, as data classes são perfeitas porque são simples e focadas apenas em transportar dados.

  2. Armazenar respostas de APIs: Como você mencionou, elas são úteis para construir objetos que representam respostas de APIs. Isso facilita a deserialização de dados JSON em objetos Kotlin, por exemplo, usando bibliotecas como Gson ou Jackson.

  3. Imutabilidade e Segurança: As data classes em Kotlin são frequentemente usadas com propriedades imutáveis (usando val), o que ajuda a garantir que os dados não sejam alterados após sua criação, contribuindo para a segurança e consistência do código.

  4. Simplicidade e Redução de Boilerplate: Se o seu objetivo é reduzir a quantidade de código repetitivo (boilerplate) e manter as coisas simples e claras, data classes são uma excelente escolha.

Por outro lado, para casos onde a classe precisa encapsular uma lógica de negócio complexa, manter estado interno ou requerer métodos além dos simples getters e setters, uma classe regular pode ser mais apropriada.

No contexto do seu curso, como você está lidando com dados provenientes de uma API e precisa armazenar esses dados de forma eficiente e clara, utilizando data classes como InfoApiShark para representar esses dados específicos da API faz todo sentido. Isso não só simplifica o código, mas também facilita gerenciar mudanças, como a troca de fontes de dados.

Espero ter esclarecido suas dúvidas sobre quando usar data classes em relação a classes normais e como elas podem ser aplicadas em seu projeto real.

Bons estudos!

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

Show Armano, muito obrigado pela explicação! Ficou muito claro e tirou as minhas dúvidas. Valeeeeu