use*_*855 6 c++ builder-pattern
为什么我们不能在构造函数本身内构建不同的构建步骤.如果构建步骤采用参数,为什么它们不能作为构造函数的参数提供,并在构造函数中用于创建对象.
AFAIK,在Builder模式中,客户端要创建的特定对象; 那么在创建Class的对象中使用构建器而不是带有参数的构造函数有什么好处?
哦! 我知道了.我在看维基百科的例子,并意识到为什么Builder很有帮助.当客户端不知道哪些参数传递给构造函数时很有用,因为它非常复杂,因此无法直接调用构造函数并获取对象.因此,他向Concrete Builders请求帮助,他们知道传递给构造函数的参数,从而获得创建的对象.
基本上,如果客户端主要是将参数传递给创建了对象的类的构造函数,那么Builder就没那么有用了.使用原型可能更好.另一方面,如果有一小组有限的特定对象可以通过将参数传递给构造函数(或调用setter)到该类来创建,如果它们是经常使用的那些,那么它更好封装此参数在Builder类中传递thingy并使用它们为您创建对象.