这种构造是一种设计模式吗?

Is this construction a design pattern?

有时我会通过向它传递一个 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();

这个图案叫什么名字,如果是图案的话?我以为它叫享元,但看了维基百科上的描述,它与这里的描述不完全一致。

这称为 参数对象 模式,您将一堆方法参数封装到另一个 object/structure 中。正如您在问题中已经提到的,优点之一是能够修改实际参数而无需更改方法的签名。您可以在这里阅读更多内容:http://www.c2.com/cgi/wiki?ParameterObject