次の方法はコードの設計が間違っていますか?危険なコードを保護するためのブール型パラメータの追加
public void aMethodThatDoesHorribleIrreversibleDamageIfTheUserIsntCareful(boolean doAction) {
if (!doAction)
return;
//rest of dangerous and irreversible method code
}
このメソッドは、(適切に名前が付けられているように)元に戻すことができない危険な動作を行います。
このメソッドを呼び出すときに、より注意を払うように強制するには、ブール値フラグをパラメータとして使用するのが悪い習慣ですか?
このパラメータを使用するメリットは、発信者が危険で変更不可能な操作を実行したことをユーザーに警告し、実行することを確認するメッセージを表示することです。
このようなメソッドパラメータは、目的を果たすか、時間の無駄です(さらにメソッドパラメータリストを乱雑にする)かどうかを確認することができます。
より良いオプションは、発信者がユーザーに警告して確認を求めてから、プロンプトに* No *と書かれていれば、最初は決して破壊的機能を呼び出さないことです。フラグは必要ありません。 –
あなたの呼び出し元は、呼び出された他の場所から 'whateverHorribleFunction(true)'をコピーするだけです。その引数の名前が何であるか、何をしているのか分からずにコピーします。 – user2357112