私はフラグ引数を持つメソッドを持っています。私はブール値をメソッドに渡すことは悪い習慣であると考えています(署名を複雑にし、 "各メソッドは一つのことをします"という原則に違反します)。私は、このメソッドを2つの異なるメソッドに分割する方が良いと思います。しかし、私がそれをするならば、2つの方法は非常によく似ています(コードの重複)。フラグ引数を持つメソッドを分割する方法はありますか?
フラグ引数を持つメソッドを2つの別々のメソッドに分割する一般的な技術があるのだろうかと思います。ここで
は私の方法(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;
}
良いアイデアですが、静的内部クラスを使用してフィルタを実装します。 – Ralph