if-else文のコードの複雑さを軽減

アンジェリーナ:

私のコード分析プラグインは、次のコードが含ま方法でコードの複雑さについて不平を言っています。それは組み合わせることができるように私には、次のコードルックスに気づいたが、私はそれを行う方法がわからないです。

for(Command command : commands) {
    if (command instanceof AddCommand || command instanceof UpdateCommand) {
        if (!isMaturityDateInPast() && !paymentDueDate().isAfter(LocalDate.now())) {
            command.execute(request);
        }
    } else {
        command.execute(request);
    }
}

私は、ブール変数を導入し、ifとelseステートメントの両方でそれを設定しようとしたが、それは単にコードの複数行を追加します。それは論理的に共通で何かを持っているコードの一部を配置することになると私は非常に良いではないと思います。私はこれを言うことができif-else組み合わせることができるが、私はどのように行うのか分かりません。缶誰かがいくつかの光を当てますか?

フォールン:

私は早いだろうcontinueの繰り返しを避けるためにcommand.execute()私はそれが一つまたはそのために別の関数を作成する際に条件を結合する価値があるとは思いません。

for(Command command : commands) {
  if (command instanceof AddCommand || command instanceof UpdateCommand) {
    if (isMaturityDateInPast() || paymentDueDate().isAfter(LocalDate.now())) {
        continue;
    }
  }
  command.execute();
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=231414&siteId=1