3

時々、POD (Plain Old Data) を渡してクラスを初期化します。これにより、関数に渡さなければならないパラメーターの数が減り (コンストラクターか init 関数かに関係なく)、パラメーターが宣言されている順序を気にせずに、パラメーターの数と性質を変更せずに変更できます。メソッドのシグネチャを変更する必要があります。

便利だと思います。

以下に小さな例を示します。

class Manager
{
public:

  struct Configuration
    : mDataVectorSize( 20 )
    , mShouldOutputDebug( false )
  {
    int mDataVectorSize;
    bool mShouldOutputDebug;
  };

  Manager(const Configuration& aConfiguration);

  void serviceA();
  void serviceB();

private:
  Configuration mConfiguration;
  std::vector<int> mData;

};

使用法:

Manager::Configuration config;
config.mDataVectorSize = 30;

Manager manager( config );

manager.serviceA();

パターンでさえある場合、このパターンの名前は何ですか? Flyweightという名前だと思っていたのですが、Wikipediaの説明を読むと、ここにあるものとは正確には一致しません。

4

1 に答える 1