Builder 模式与 Param 对象输入

问题描述 投票:0回答:1

我一直在阅读有关 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; 
} 

在我看来,这比创建构建器类要容易得多。

我错过了什么吗?

javascript design-patterns
1个回答
0
投票

是的,你是对的,可以只使用参数。

知道最佳实践是使用较少数量的参数来提高可读性,最好使用

Builder
通过使用方法的显式名称来创建某些对象(例如,石头和木屋)的不同表示.

此外,

Builder
模式解决了以下问题

使用构建器模式摆脱“伸缩构造函数”。

假设您有一个带有十个可选参数的构造函数。召唤这样的野兽非常不方便;因此,您可以重载构造函数并创建几个参数较少的较短版本。这些构造函数仍然引用主构造函数,将一些默认值传递给任何省略的参数。

class Pizza {
    Pizza(int size) { ... }
    Pizza(int size, boolean cheese) { ... }
    Pizza(int size, boolean cheese, boolean pepperoni) { ... }
    // ...

构建器模式允许您逐步构建对象,仅使用您真正需要的步骤。实现该模式后,您不必再将数十个参数塞入构造函数中。

© www.soinside.com 2019 - 2024. All rights reserved.