我使用C++和Java一段时间,最近我在jquery上。我注意到了jquery的链式功能。那么我认为,如果我们可以像jQuery那样改变C++/Java中的setter?例如,如果我们的代码是像jquery一样,我们可以使用C++/Java中的链式设置器吗?
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public Person setName(String name) {
this.name = name;
return this;
}
public Person setAge(int age) {
this.age = age;
return this;
}
}
然后,我们可以写代码如下代替:
Person person = new Person();
person.setName("Tom").setAge(20);
如果我们有很多制定者,这似乎是更简单。
我不知道这是个好主意吗?你是否同意我的观点?给我你的意见。谢谢!
这种方法没有任何问题,一些内置实用程序使用这种模式(例如'StringBuilder')。我个人不喜欢它,但那只是我。如果它适合你,那么就去做吧。 – aroth 2012-03-19 02:46:45
相关:http://stackoverflow.com/q/4899756/240633 – ergosys 2012-03-19 02:51:30
如果您希望不同的setter修改同一个对象,或者将对象存储在setter链的末尾某处,您将不得不返回一个引用。 – 2012-03-19 02:58:33