有时我通过将 POD(普通旧数据)传递给它来初始化我的类。这减少了我必须传递给函数的参数数量(无论是构造函数还是 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 上的描述,它与这里的内容不完全匹配。