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)
这是一种非常常见的方法 - 公共方法委托对具有相同名称但具有附加参数的私有方法的调用。这个图案有名字吗?
更有可能的是Facade设计模式。更为人所知的是为子系统中的一组接口提供统一的接口。但在这种情况下,我认为用于定义更高级别的实现,使子系统更易于使用。正如您所看到的,参数有两个SplitByCharacterType(final String str, final boolean camelCase),但只有一个通过 暴露给外部世界splitByCharacterType(final String str)。
隐藏实现细节也是封装的一个概念。因此,正在向其他用户提供他们需要了解/使用的内容,而实际处理则留给负责它的人。
| 归档时间: |
|
| 查看次数: |
4234 次 |
| 最近记录: |