Avoid Negations

 class​ Laboratory {
 
  Microscope microscope;
 
  Result analyze(Sample sample) {
»if​ (microscope.isInorganic(sample)) {
 return​ Result.INORGANIC;
  } ​else​ {
 return​ analyzeOrganic(sample);
  }
  }
 
 private​ Result analyzeOrganic(Sample sample) {
»if​ (!microscope.isHumanoid(sample)) {
 return​ Result.ALIEN;
  } ​else​ {
 return​ Result.HUMANOID;
  }
  }
 }

Has anyone ever told you to “think positively”? Turns out, positive expressions are better in your code than negative ones because they’re often easier to grasp and they take up slightly less space.

The problem code shown here is another variant of the Laboratory component. It provides two methods that take a Sample and return a Result. There’s nothing ...

Get Java By Comparison now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.