| about | help | code help+videos | done | prefs | 
gaurav.gupta@mq.edu.au delegation
A function should have one specific responsibility, not too many. For example, the following function returns true if the passed String is purely alphabetic, but is bulky.
boolean isAlpha(String s) {
  for(int i=0; i < s.length(); i++) {
    if(!(s.charAt(i) >= 'a' && s.charAt(i) <= 'z')) {
      if(!(s.charAt(i) >= 'A' && s.charAt(i) <= 'Z')) {
        return false;
      }
    }
  }
  return true;
}
Instead, it would be better to delegate it to smaller functions, each having a very specific job, and then use them to solve the more complex problem.
boolean isLowerCase(char ch) {
  return ch >= 'a' && ch <= 'z';
}
boolean isUpperCase(char ch) {
  return ch >= 'A' && ch <= 'Z';
}
boolean isAlphabet(char ch) {
  return isLowerCase(ch) || isUpperCase(ch);
}
boolean isAlpha(String s) {
  for (int i=0; i < s.length(); i++) {
    if (!isAlphabet(s.charAt(i))) {
      return false;
    }
  }
  return true;
}
Benefits include,
1. Easier to code.
2. Easier to debug and isolate issues.
3. Easier to maintain.
4. Easier to reuse.
-------
Level 1
-  isPalindrome H  
-
isPalindrome H  
-  overlap H
overlap H  
Level 2
Level 3
-  same H
same H  
Authoring docs
Copyright Nick Parlante 2017 - privacy