gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:46:07 25 4
gpt4 key购买 nike

有时我通过向它传递一个 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,但是看了维基百科上的描述,它与这里的描述不完全一致。

最佳答案

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

关于design-patterns - 这种构造是一种设计模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29176024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com