在一些来源中,例如Martin Fowler的原始文章中没有写到方法将返回相同的对象,并且示例中的方法返回不同的对象,但在一些来源(较新)中,例如Wikipedia中写到方法将返回返回相同的对象,哪个是正确的?
没有正确或正确的方法来编写流畅的界面。
即使 Fowler 的文章也使用了两种返回对象,但你并不容易看到它,因为它显示了用法,而不是实现。
通常,当您配置某个对象时,只有返回相同的对象才有意义。否则,您必须先克隆它,然后应用附加值。
但是在某些情况下,流畅的接口最终会返回序列中的其他对象,无论它是相同的还是其他类型。