Qual é o número máximo de variáveis ​​de instância que uma classe Java deve ter?

É um bom design OO ter 20-25 variáveis ​​de instância em uma classe JAVA, com seus getters/setters?
Todas as variáveis ​​são totalmente independentes.
Como eu estou usando uma classe no HBase, que representa uma família de colunas, para que a família de colunas possa ter diferentes números de colunas para cada linha. Então eu tenho que colocar esse grande número de variáveis ​​nessa classe. Estou muito curiosa para saber Quantas variáveis ​​e métodos de instância uma classe JAVA deveria ter idealmente?

4
adicionado editado
Visualizações: 1

5 Respostas

Tentando ter boa OO, é bom procurar a classe para ter uma única responsabilidade. Então, se você tem tantas variáveis ​​não relacionadas, parece que a turma está fazendo muito.

Isso seria um "cheiro de código" e você deve considerar a refatoração em várias classes.

Seu grande você está interessado em bom OO. Eu recomendo a leitura de Refactoring e Code Smells.

http://c2.com/cgi/wiki?OneResponsibilityRule would be relative here..

7
adicionado
en.wikipedia.org/wiki/God_object também pode ser aplicado.
adicionado o autor Eric, fonte

Isso realmente não importa, desde que você esteja garantindo o baixo acoplamento . Atribuir tantas variáveis ​​a uma classe pode aumentar as chances de alto acoplamento.

Além disso, pode ser um sinal de baixa coesão em sua classe, em oposição a a situação ideal de alta coesão.

4
adicionado

Em 20-25 variáveis ​​de instância você deve estar dentro do limite, no entanto, acho que 20-25 pode ser demais. Você poderia tentar agrupá-los em classes diferentes e reduzir a quantidade de variáveis ​​de instância.

Geralmente, ter muitas variáveis ​​de instância torna a classe limitada em escopo, o que não é ideal em um cenário em que você gostaria de manter a solução. Quebrá-lo (se feito corretamente) deve aumentar a reutilização de algumas de suas classes.

2
adicionado

bem, se a sua classe representa objetos portadores de dados, então é perfeitamente OK ir com isso. Este projeto é comum em java beans.

Por exemplo, se você tiver uma turma que represente um funcionário em uma empresa, isso é bastante comum, se um funcionário tiver de 20 a 25 atributos.

Mas se você está mexendo com muitas variáveis ​​de instância com métodos de negócios, então você enfrentará dificuldades, pois não conseguirá obter componentes de negócios concentrados e focados.

Para torná-lo melhor em termos de arquitetura, você pode considerar Herança (subclasse) ou composição (classe interna)

0
adicionado

Java não tem nenhuma limitação na variável de instância java que uma classe pode ter. Conforme sua necessidade, você pode ter qualquer número de variáveis ​​de instância.

O ponto-chave a ser lembrado é que eles devem ser acessíveis somente pelos métodos getter e setter. Um usuário não deve poder acessá-los diretamente com o nome da variável de instância.

A variável Means Instance deve ser declarada com modificadores privados e deve fornecer métodos públicos para acessá-los e manipulá-los.

0
adicionado