c ++可以做这个java builder模式吗?

时间:2013-03-13 09:50:42

标签: java c++

在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 ++中是否可行?

2 个答案:

答案 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的对象指针的引用,它当然是当前对象。