4

テスト対象コードの入力データの作成を合理化するために、C++ 単体テストでビルダー パターンを使用することを考えています。

Java では、ビルダー クラスのセッターがビルダー オブジェクト自体 (への参照) を返して、複数のセッターを 1 行で連鎖できるようにするのが一般的なイディオムのようです。例)ビルダー クラスは次のように定義できます。

// class builder 
public class Builder
{
  private Part1 part1;
  private Part2 part2;
  public Builder withPart1(Part1 p1);
  public Builder withPart2(Part2 p2);
};

そして、このように使用されます:

Builder b;
Part1 p1;
Part2 p2;
b.withPart1(p1).withPart2(p2);

セッターがビルダー オブジェクトへの参照を返すようにすることで、C++ でも同じ効果を得ることができます。ただし、ウェブ上でその例を見つけることができませんでした。この種の「チェーン」は C++ の一般的な方法ですか? いいえの場合、なぜですか?

4

1 に答える 1

5

はい、それは一般的な方法です。「Fluent API」と呼ばれます。

標準的な例:

while ((std::cin >> std::setbase(16) >> i >> s).getline(s2)) { ... }
于 2011-08-01T20:39:31.430 に答える