是否有最佳实践或普遍接受的模式来命名方法,这些方法将某些东西“添加”到具有 Java API 流利风格的不可变对象的集合中?
这是一个代码示例:
public class GivenUUIDGenerator {
private final ImmutableList<String> playbackUUIDs;
public GivenUUIDGenerator(List<String> playbackUUIDs) {
this.playbackUUIDs = ImmutableList.copyOf(playbackUUIDs);
}
public GivenUUIDGenerator howShouldINameThisMethod(String uuid){
return new GivenUUIDGenerator(ImmutableList.<String>builder().addAll(playbackUUIDs).add(uuid).build());
}
}
这是来自我正在开发的一个项目的一个拉取请求,我们已经讨论过这个方法的最佳命名选项,但是两个法国人都无助于选择一个好名字。
我试图找到现有技术或最佳实践,这是我迄今为止发现的:
- Martin Fowler 关于 Fluent Interface 的文章只是用于
with
将订单行添加到订单中,但我不知道这么通用(不命名我们要添加的内容)是否是一个不错的选择。 - Apache Commons HttpClient fluent API使用
addXXX
但它不是不可变的。 - jaxb -fluent-api 项目使用
withNewXXX
约定,但行为不同,它实际上是创建一个项目实例,而不是添加现有的
我得到的其他建议:
- 原公关主张:
withAddedXXX
- 另一个提议:
withAdditionalXXX