为什么Builder模式比创建类对象中的参数的构造函数更好?

时间:2010-09-04 07:16:59

标签: c++ builder-pattern

为什么我们不能在构造函数本身内构建不同的构建步骤。 如果构建步骤采用参数,为什么它们不能作为构造函数的参数提供,并在构造函数中用于创建对象。

AFAIK,在Builder模式中,客户端要创建的特定对象;那么在创建Class的对象中使用构建器而不是构造函数有什么优势呢?

1 个答案:

答案 0 :(得分:5)

哦!我知道了。我在看维基百科的例子,并意识到为什么Builder很有帮助。当客户端不知道哪些参数传递给构造函数时很有用,因为它非常复杂,因此无法直接调用构造函数并获取对象。因此,他向Concrete Builders寻求帮助,他们知道传递给构造函数的参数,从而创建了对象。

基本上,如果客户端主要是将参数传递给创建了对象的类的构造函数,那么Builder就没那么有用了。使用原型可能更好。另一方面,如果有一小组有限的特定对象可以通过将参数传递给构造函数(或调用setter)到该类来创建,如果它们是经常使用的那些,那么它更好封装此参数在Builder类中传递thingy并使用它们为您创建对象。