关于建筑:链接二传手:有缺点吗?

Chaining setters: is there a drawback?

我已经开始使用从jQuery采用的技术,在我的setter中称为链接。 例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Foo {
  private int bar;
  private int baz;

  public int getBar() { return this.bar; }
  public int getBaz() { return this.baz; }

  public Foo setBar(int bar) {
    this.bar = bar;
    return this;
  }

  public Foo setBaz(int baz) {
    this.baz = baz;
    return this;
  }
}

我更喜欢这种方式,因为它很容易设置多个属性。

有缺点吗? 我已经向几位Java程序员询问了这个问题,但他们只能说它"不太好",但他们无法给我一个正确的解释原因。


我认为你遇到了一个缺点:在一些编程语言的文化中,它是不寻常的和非常规的。 有些文化比其他文化反应更好,不寻常和非常规。 我同意它有其优点,但Java setter通常不会这样编码。


你可以在这个类似的问题上找到答案。