为什么我们不能在构造函数本身中进行不同的构建步骤。如果构建步骤带有参数,为什么不能将它们作为参数提供给构造函数并在构造函数中用于创建对象。
AFAIK,在 Builder 模式中,创建特定对象的客户端;那么在创建的类对象中使用构建器而不是带有参数的构造器有什么好处?
为什么我们不能在构造函数本身中进行不同的构建步骤。如果构建步骤带有参数,为什么不能将它们作为参数提供给构造函数并在构造函数中用于创建对象。
AFAIK,在 Builder 模式中,创建特定对象的客户端;那么在创建的类对象中使用构建器而不是带有参数的构造器有什么好处?
哦!我得到它。我正在查看 Wikipedia 示例,并意识到为什么 Builder 很有帮助。当客户端不知道将哪些参数传递给构造函数时很有帮助,因为它非常复杂,因此无法直接调用构造函数并获取对象。因此,他向知道要传递给构造函数的参数并因此创建对象的具体建造者寻求帮助。
基本上,如果客户端是主要将参数传递给创建对象的类的构造函数的人,那么 Builder 就没有那么有用了。使用原型可能会更好。另一方面,如果可以通过将参数传递给该类的构造函数(或调用setter)从类中创建一小部分有限的特定对象,并且如果它们是经常使用的对象,那么最好将这个参数封装在 Builder 类中传递 thingy 并使用它们为您创建对象。