在java中,构建器setter方法可以返回构建器本身,以便可以链接调用,如下所示:
public class builder{
private String name;
private int age;
private char glyph;
public builder setName(String name){
this.name = name;
return this;
}
public builder setAge(int age){
this.age = age;
return this;
}
public builder setGlyph(char glyph){
this.glyph = glyph;
return this;
}
public static void main(String[] args){
builder b = new builder().setName("").setAge(10).setGlyph('%');
}
}
这在c ++中是否可行?
答案 0 :(得分:6)
是的,当然,您只需返回对构建器的引用:
Builder & setSomething(const std::string & smth)
{
// do setting
return *this;
}
答案 1 :(得分:2)
是的,函数链接肯定是可能的。例如setName
的实现看起来像:
builder& setName(std::string name)
{
this->name = name;
return *this;
}
它返回对this
的对象指针的引用,它当然是当前对象。