私は最近、the anti-if campaignと、ifsを使わずにコードを書くOOP gurusの努力を聞いたことがありますが、代わりに多態性を使用しています。私はちょうどそれがうまくいかなければならない、私は、どのようにそれがいつも働くべきであることを意味する。Anti-if目的:ヌルをチェックする方法は?
私はすでにポリモーフィズムを使用しています(キャンペーンについてはわかりませんでした)ので、私は "悪い"と "危険な" ifsと私のコード(Java/Swift/Objective-C)ほとんどの場合、私がどこで使うのかを確認するためには、次のようなケースが考えられます。
- ヌル値のチェック。これは、私がこれまでにifを使った場合の最も一般的な状況です。値がnullの可能性がある場合は、正しい方法で値を管理する必要があります。それを使用するには、代わりにnullでないことを確認する必要があります。私は、多形性がif文なしでこれをどのように補うことができるかは分かりません。
- 正しい値を確認してください。私はここで例を挙げます:私はログイン/サインアップアプリケーションを持っているとしましょう。ユーザーが実際にパスワードを書いたか、それとも5文字を超えているかを確認したい。 if/switchなしでどうすればできますか?繰り返しますが、タイプについてではなく値についてです。
- (オプション)チェックエラー。右の値についてはポイント2と似ているためオプションです。ブロック/クロージャで値またはエラー(paramsとして渡される)が得られた場合、nullかどうかを確認できない場合はどうしたらエラーオブジェクトを処理できますか?
このキャンペーンについて詳しく知りたい場合は、その範囲で回答してください。私は、これが彼らの目的を理解し、彼らが言うことをいかに効果的に行うことができるかを尋ねています。
したがって、ifsを使用していないことは、これまでのところ賢明なアイデアではないかもしれませんが、OOPプログラムで効果的に実行できるかどうかを尋ねるだけです。
最後の手段であるべき例外を投げる多型https://sourcemaking.com/refactoring/replace-conditional-with-polymorphism – dbugger