在 Google 的Java协议缓冲区API 中,他们使用这些漂亮的 Builder 来创建对象(请参阅此处):
Person john =
Person.newBuilder()
.setId(1234)
.setName("John Doe")
.setEmail("jdoe@example.com")
.addPhone(
Person.PhoneNumber.newBuilder()
.setNumber("555-4321")
.setType(Person.PhoneType.HOME))
.build();
但是对应的 C++ API 没有使用这样的 Builders(见这里)
C++ 和 Java API 应该做同样的事情,所以我想知道他们为什么不在 C++ 中使用构建器。这背后是否有语言原因,即它不是惯用的,或者它在 C++ 中不受欢迎?或者可能只是编写 C++ 版本 Protocol Buffers 的人的个人喜好?