J'ai une méthode avec un argument flag. Je pense que passer un booléen à une méthode est une mauvaise pratique (complique la signature, viole le principe «chaque méthode fait une chose»). Je pense que diviser la méthode en deux méthodes différentes est préférable. Mais si je fais cela, les deux méthodes seraient très similaires (duplication de code).Existe-t-il des techniques pour diviser une méthode avec un argument flag?
Je me demande s'il existe des techniques générales pour diviser des méthodes avec un argument d'indicateur en deux méthodes distinctes.
est ici le code de ma méthode (Java):
int calculateNumOfLiveOrDeadNeighbors(Cell c, int gen, boolean countLiveOnes) {
int x = c.getX();
int y = c.getY();
CellState state;
int aliveCounter = 0;
int deadCounter = 0;
for (int i = x - 1; i <= x + 1; i++) {
for (int j = y - 1; j <= y + 1; j++) {
if (i == x && j == y)
continue;
state = getCell(i, j).getCellState(gen);
if (state == CellState.LIVE || state == CellState.SICK){
aliveCounter++;
}
if(state == CellState.DEAD || state == CellState.DEAD4GOOD){
deadCounter++;
}
}
}
if(countLiveOnes){
return aliveCounter;
}
return deadCounter;
}
Bonne idée, mais utilisez des classes internes statiques pour implémenter le filtre. – Ralph