3
respostas

Atributos com o mesmo nome na mesma classe!

Preciso implementar várias classes entidades, que por causa de um único atributo vou ter que criá-las. Gostaria de saber o que posso fazer para evitar a criação de varias classes por causa de um único atributo. Ex:.

    int iTotalRecords;
    int iTotalDisplayRecords;
    String sEcho;
    String sColumns;

    List<MinhasReceitas> aaData;
    List<MinhasDespesas> aaData;
    List<GrupoDespesas> aaData;
    List<Categorias> aaData;
    List<Usuarios> aaData;

cada lista tem o seu atributo do aaData de vários tipos, mas, obviamente esse não é caminho, ou vou ter que criar várias classes mesmo?

3 respostas

Fala Clerman, tudo bem ?

É, não conseguimos definir esses atributos com mesmo nome na mesma classe. De qualquer maneira, ter muitas coleções dentro de uma única classe de modelo geralmente traz muita responsabilidade para a mesma. Existe a possibilidade de separar melhor a relação entre suas entidades ? O que o seu sistema e essa classe que contem tantos dados representa ? Só tendo uma ideia maior sobre as classes é possível pensar em formas de modelar ..

Uma dica um pouco fora da questão - tente dar nomes melhores para as variáveis. Elas devem sempre serem nomeadas de acordo com o significado real das mesmas dentro do seu negócio.

Exemplo:

List<Receita> receitas;
// ou qualquer que seja a representação
List<Receita> receitasPlanejadas; //por exemplo

Abraço!

Olá Rafael. Obrigado por responder. A lembrança de ter muitas coleções que acabam aumentando a responsabilidade de uma classe ajuda nessa hora. Os atributos nessa entidade representa os dados enviados de uma tabela

//Atributos da tabela
   int iTotalRecords;
    int iTotalDisplayRecords;
    String sEcho;
    String sColumns;

//Cada coleção de dados é enviado através do atributo aaData na tabela
    List<MinhasReceitas> aaData;
    List<MinhasDespesas> aaData;
    List<GrupoDespesas> aaData;
    List<Categorias> aaData;
    List<Usuarios> aaData;

agora se não tiver jeito vou ter que criar mesmo para cada coleção uma classe nesse modelo. Agradeço, abraço!

Oi Clerman,

Lembre-se que seus objetos não precisam necessariamente repetir toda a estrutura da tabela, seus nomes de colunas, etc. O paradigma da Orientação a Objetos que seguimos no Java difere muito do mundo relacional dos bancos de dados, então não tem problema você dividir e pensar suas classes de forma diferente.

Basta que você planeje as classes que farão suas consultas levando em conta essas diferenças pra montar corretamente seus objetos de modelo.

Abraço!