公共方法调用同名的私有方法——这是什么模式?

Kao*_*Kao 5 java language-agnostic design-patterns nomenclature

考虑来自 Apache Commons StringUtils 的这段代码:

public static String[] splitByCharacterType(final String str) {
    return splitByCharacterType(str, false);
}

private static String[] splitByCharacterType(final String str, final boolean camelCase) {
    // Some code...
}
Run Code Online (Sandbox Code Playgroud)

这是一种非常常见的方法 - 公共方法委托对具有相同名称但具有附加参数的私有方法的调用。这个图案有名字吗?

eko*_*nov 3

更有可能的是Facade设计模式。更为人所知的是为子系统中的一组接口提供统一的接口。但在这种情况下,我认为用于定义更高级别的实现,使子系统更易于使用。正如您所看到的,参数有两个SplitByCharacterType(final String str, final boolean camelCase),但只有一个通过 暴露给外部世界splitByCharacterType(final String str)

隐藏实现细节也是封装的一个概念。因此,正在向其他用户提供他们需要了解/使用的内容,而实际处理则留给负责它的人。