2010-09-04 59 views
6

为什么我们不能在构造函数本身中使用不同的构建步骤。 如果构建步骤需要参数,为什么不能将它们作为参数提供给构造函数,并在构造函数中用于创建对象。为什么Builder模式比在构造类的对象中创建的构造函数更好?

AFAIK,在Builder模式下,创建特定对象的客户端;那么使用构建器而不是构造器来创建Class对象中的参数有什么好处?

回答

5

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

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

相关问题