Fluent 接口和方法链实现的方法级联的区别 [重复]

The different between fluent interface and method cascading implemented by method chaining [duplicate]

提问人:user502233 提问时间:9/17/2023 最后编辑:Mark Seemannuser502233 更新时间:9/17/2023 访问量:44

问:

当我在维基百科上读到它时,在我看来,这两者几乎是一样的,但同一篇文章说它们不仅在 DSL 的使用上有所不同。

请注意,“流畅的接口”不仅仅意味着通过链接进行方法级联;它需要设计一个界面 读起来像 DSL,使用其他技术,如“嵌套函数和对象范围”。

我不明白它们有什么关系 在其他文章中,我看到了一些示例,其中流畅的接口只是方法链,而不是级联

OOP 设计 - 模式 Fluent-Interface 方法 - 级联

评论


答:

2赞 Luca Micarelli 9/17/2023 #1

流体接口和通过方法链接实现的级联方法是相关的概念,因为它们都涉及将方法调用链接在一起,但它们具有不同的目的并具有不同的特征。

方法链接是一种通用的编程技术,在该技术中,为了方便和可读性,可以链接方法调用。级联方法是方法链的一种特定用途,在这种方法中,您可以链接同一对象上的方法以执行一系列相关操作。

Fluent 接口虽然可能涉及方法链,但其设计 API 读起来像特定于领域的语言,并且通常包括方法链之外的其他设计注意事项,使它们更具表现力和 DSL 风格。

因此,虽然它们有相似之处,但它们并不相同,流体接口可以包含的不仅仅是通过链接级联。