在Google的Protocol Buffer API for Java中,他们使用这些创建对象的很好的构建器(参见此处):
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();
Run Code Online (Sandbox Code Playgroud)
但是相应的C++ API不使用这样的构建器(参见这里)
C++和Java API应该做同样的事情,所以我想知道他们为什么不在C++中使用构建器.是否有语言原因,即它不是惯用的,或者在C++中不受欢迎?或者可能只是编写C++版协议缓冲区的人的个人偏好?