Utility Classes and Static Factory Methods
Design non-instantiable utility classes and expose static factory methods as alternatives to constructors.
Utility Classes and Static Factory Methods
Utility classes provide static helper methods with no instance state. Static factory methods are named alternatives to constructors that offer better readability, caching, and flexibility.
Utility Classes
A utility class has no instance state — it is a container of static methods. Make it non-instantiable by declaring a private constructor.
final class StringUtils {
// Private constructor prevents instantiation
private StringUtils() {
throw new UnsupportedOperationException("Utility class");
}
public static boolean isBlank(String s) {
return s == null || s.strip().isEmpty();
}
public static String capitalize(String s) {
if (isBlank(s)) return s;
return Character.toUpperCase(s.charAt(0)) + s.substring(1).toLowerCase();
}
}
System.out.println(StringUtils.isBlank(" ")); // true
System.out.println(StringUtils.capitalize("hELLO")); // HelloAll lessons in this course
- Method Overloading Rules
- Varargs Parameters
- Static Fields and Constants
- Utility Classes and Static Factory Methods