Java中的构建者与C++?
2022-09-04 02:55:09
在Google的Copert Buffer API for Java中,他们使用这些漂亮的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 不使用此类构建器(请参阅此处)
C++和Java API应该做同样的事情,所以我想知道为什么他们没有在C++中使用构建器。这背后是否有语言原因,即它不是惯用语,或者C++中令人不快?或者可能只是编写C++版本的协议缓冲区的人的个人偏好?