2

Java では、次のように呼び出しを連鎖できるように、ビルダーのセッター メソッドがビルダー自体を返すことができます。

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 ++で可能ですか?

4

2 に答える 2

7

はい、もちろん、ビルダーへの参照を返すことができます:

Builder & setSomething(const std::string & smth) 
{
    // do setting
    return *this;
}
于 2013-03-13T09:52:34.260 に答える
2

はい、関数チェーンは確かに可能です。たとえば、の実装はsetName次のようになります。

builder& setName(std::string name)
{
  this->name = name;
  return *this;
}

by へのオブジェクトポインタへの参照を返しますthis。これはもちろん現在のオブジェクトです。

于 2013-03-13T09:52:57.427 に答える