時々、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の説明を読むと、ここにあるものとは正確には一致しません。