WTF : imbriquer des conditions ?

Algèbre booléenne ? Qu’est ce donc que ceci ? Je pense que mon collègue n’a pas bien suivi ses cours en école d’ingé. Il n’a pas du assimiler le concept du « ET » et du « OU ». Il nous comble de joie en nous proposant de belles fonctions de plusieurs dizaines de lignes se résumant par une suite de if…

Il n’a pas non plus compris je pense le concept de l’imbrication des conditions.

Je vous laisse admirer :

  1. protected Boolean isFoo_Excepte_06(final Child child) {
  2.  Boolean valide = Boolean.FALSE;
  3.  String code = child.getCode();
  4.  if (code.equals(MyConsts.CONST_1)) {
  5.   valide = Boolean.TRUE;
  6.  }
  7.  if (code.equals(MyConsts.CONST_2)) {
  8.   valide = Boolean.TRUE;
  9.  }
  10.  if (code.equals(MyConsts.CONST_3)) {
  11.   valide = Boolean.TRUE;
  12.  }
  13.  if (code.equals(MyConsts.CONST_4)) {
  14.   valide = Boolean.TRUE;
  15.  }
  16.  if (valide) {
  17.   if (child.getOtherCode().equals(MyConsts.CONST_5)) {
  18.    return Boolean.FALSE;
  19.   } else {
  20.    return Boolean.TRUE;
  21.   }
  22.  }
  23.  return Boolean.FALSE;
  24. }

La première simplification serait bien évidement d’utiliser l’opérateur « OU » proposé nativement par java et d’imbriquer les conditions :

  1. protected Boolean isFoo_Excepte_06(final Child child) {
  2.  String code = child.getCode();
  3.  if (code.equals(MyConsts.CONST_1)
  4.   || code.equals(MyConsts.CONST_2)
  5.   || code.equals(MyConsts.CONST_3)
  6.   || code.equals(MyConsts.CONST_4)) {
  7.  
  8.   if (child.getOtherCode().equals(MyConsts.CONST_5)) {
  9.    return Boolean.FALSE;
  10.   } else {
  11.    return Boolean.TRUE;
  12.   }
  13.  }
  14.  return Boolean.FALSE;
  15. }

Une seconde simplification serait de ne pas faire « if(…) {return true;}else{return false;} » mais faire directement une instruction return et même soyons fous, d’utiliser l’opérateur « ET »…

  1. protected Boolean isFoo_Excepte_06(final Child child) {
  2.  String code = child.getCode();
  3.  return ((code.equals(MyConsts.CONST_1)
  4.   || code.equals(MyConsts.CONST_2)
  5.   || code.equals(MyConsts.CONST_3)
  6.   || code.equals(MyConsts.CONST_4))
  7.    && (child.getOtherCode().equals(MyConsts.CONST_5)));
  8. }

Elle est pas belle la vie ?

Le commentaires sont fermés.