设计:Java并在setter方法中返回自引用

pek*_*pek 21 java

对于有经常使用制定者的一个长长的清单班,我发现这种方式非常有用(虽然我最近看了一下Builder模式有效的Java是有点相同).

基本上,所有setter方法都返回对象本身,因此您可以使用如下代码:

myClass
    .setInt(1)
    .setString("test")
    .setBoolean(true);
Run Code Online (Sandbox Code Playgroud)

塞特斯最终只返回这个:

public MyClass setInt(int anInt) {
    // [snip]
    return this;
}
Run Code Online (Sandbox Code Playgroud)

你有什么意见?优缺点都有什么?这对性能有影响吗?

也称为c ++中的命名参数idiom.

Bar*_*ski 15

@pek
链式调用是Java 7的提议之一.它说如果方法返回类型为void,它应该隐式返回.如果你对这个主题感兴趣,那么Alex Miller的Java 7页面上有很多链接和一个简单的例子.


Blo*_*ard 10

这称为Fluent界面,供参考.

就个人而言,我认为这是一个非常巧妙的想法,但真的是一个品味的问题.我认为jQuery以这种方式工作.