【发布时间】:2010-09-07 02:11:26
【问题描述】:
对于具有一长串经常使用的 setter 的类,我发现这种方式非常有用(尽管我最近阅读了 Effective Java 中的 Builder pattern 有点相同) .
基本上,所有 setter 方法都返回对象本身,因此您可以使用如下代码:
myClass
.setInt(1)
.setString("test")
.setBoolean(true);
Setter 最后简单地返回这个:
public MyClass setInt(int anInt) {
// [snip]
return this;
}
你的意见是什么?优缺点都有什么?这对性能有影响吗?
在 c++ 中也称为named parameter idiom。
【问题讨论】:
-
就像 Joshua Bloch 的书,Effective Java (2nd edition),Builder Pattern 的优点之一,你可以更容易地推断出对象的状态,因为一旦它被创建,它不能变异。它还为类的客户端提供了更流畅的api,尤其是当类的参数很多时,其中许多是可选的。
-
看起来这在 C++ 中被称为命名参数习语。我通常赞成它而不是具有许多参数的传统构造函数。见stackoverflow.com/questions/752762/…和cs.technion.ac.il/users/yechiel/c++-faq/…
标签: java