链接方法模式

时间:2013-09-20 02:48:46

标签: java builder chaining

创建可链接的方法会导致执行不力吗?

我在说这个:

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();对象更好吗?

2 个答案:

答案 0 :(得分:2)

这种称为fluent interface的模式使代码更具可读性。遗憾的是,广泛使用的JavaBeans标准指定setter必须返回void,并且返回this可能会破坏一些期望与精确签名匹配的工具。 There's a good overview here

答案 1 :(得分:1)

常规java中没有效率问题。使用Builder模式(StringBuilder)等的原因是因为您的类的运行方式(String的不变性),这可能会使某些操作效率低下。