创建可链接的方法会导致执行不力吗?
我在说这个:
public class Foo {
public Foo bar() {
// Code
return this;
}
public Foo setBar() {
// Code
return this;
}
}
Foo foo = new Foo();
foo.bar().setBar();
这比创建Foo.Builder
类并使用Foo
方法获取Builder.getFoo();
对象更好吗?
答案 0 :(得分:2)
这种称为fluent interface的模式使代码更具可读性。遗憾的是,广泛使用的JavaBeans标准指定setter必须返回void
,并且返回this
可能会破坏一些期望与精确签名匹配的工具。 There's a good overview here
答案 1 :(得分:1)
常规java中没有效率问题。使用Builder
模式(StringBuilder
)等的原因是因为您的类的运行方式(String
的不变性),这可能会使某些操作效率低下。