我一直在阅读有关 Go4“构建器模式”的内容。您可以在这里阅读有关该模式的更多信息:https://www.sohamkamani.com/javascript/builder-pattern/
我不明白为什么我们不能像这样在单个参数对象中传递许多参数
constructor({ name, age, address, phoneNum, email }) {
this.name = name;
this.age = age;
this. address = address;
this.phoneNum = phoneNum;
this.email = email;
}
在我看来,这比创建构建器类要容易得多。
我错过了什么吗?
是的,你是对的,可以只使用参数。
知道最佳实践是使用较少数量的参数来提高可读性,最好使用
Builder
通过使用方法的显式名称来创建某些对象(例如,石头和木屋)的不同表示.
此外,
Builder
模式解决了以下问题:
使用构建器模式摆脱“伸缩构造函数”。
假设您有一个带有十个可选参数的构造函数。召唤这样的野兽非常不方便;因此,您可以重载构造函数并创建几个参数较少的较短版本。这些构造函数仍然引用主构造函数,将一些默认值传递给任何省略的参数。
class Pizza {
Pizza(int size) { ... }
Pizza(int size, boolean cheese) { ... }
Pizza(int size, boolean cheese, boolean pepperoni) { ... }
// ...
构建器模式允许您逐步构建对象,仅使用您真正需要的步骤。实现该模式后,您不必再将数十个参数塞入构造函数中。