使用流畅接口模式创建 JavaScript 对象为什么要以这种方式构建对象?

2025-06-10

使用流畅接口模式创建 JavaScript 对象

为什么要以这种方式构建对象?

创建新的 JavaScript 对象有很多方法。在本文中,我们将使用流畅接口模式!在流畅接口模式中,我们使用已定义方法的类来向对象添加属性。

在下面的示例中,我们创建一个PersonBuilder类。在 中constructor,我们创建一个空person属性。然后,我们添加一些名为withName和 的附加方法,withAge分别用于为 Person 指定姓名和年龄。

最后,我们有一个build方法。它只是返回我们的person对象,表示我们已经完成了构建。

class PersonBuilder {
  constructor() {
    this.person = {};
  }
  withName(name) {
    this.person.name = name;
    return this;
  }
  withAge(age) {
    this.person.age = age;
    return this;
  }
  build() {
    return this.person;
  }
}
Enter fullscreen mode Exit fullscreen mode

请注意,我们在和方法this中返回- 这将返回当前实例,允许我们继续链接方法。withNamewithAge

我们的类的实现最终是这样的:

const person = new PersonBuilder()
  .withName("Daffodil")
  .withAge(25)
  .build();
console.log(person);
// { name: "Daffodil", age: 25 }
Enter fullscreen mode Exit fullscreen mode

就是这样,我们现在有一个人物对象!

为什么要以这种方式构建对象?

流畅接口模式确实可能比较冗长,但它的一个优点是,它使得在对象上设置错误的属性变得非常困难——你只能使用类的方法设置对象的 props。如果你的对象有很多属性,或者你需要一种便捷的方式来按照规范生成一堆不同的对象(例如,用于生成测试用例),那么这会特别方便。

鏂囩珷鏉ユ簮锛�https://dev.to/nas5w/using-the- Fluent-interface-pattern-to-create-javascript-objects-2p1n
PREV
在 React 中编写自己的 useFetch Hook 我们的 useFetch 函数签名 在 Hook 中维护状态 当我们的 URL 或选项更改时运行效果 使用 Async Await 调用 Fetch 使用 Hook 总结
NEXT
使用 Array.Reduce 简化 JavaScript 对象验证 手动验证 创建验证框架 创建可重用的验证函数