| 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
-
overlap H
Level 2
Level 3
-
same H
Authoring docs
Copyright Nick Parlante 2017 - privacy