我使用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