【问题标题】:How are fluent API's different from other API's?fluent API 与其他 API 有何不同?
【发布时间】:2010-05-26 06:14:05
【问题描述】:
我在学习 DSL 时遇到了流利的 API。
我在 fluent API 上进行了很多搜索......我可以得出的基本结论是,流畅的 API 使用方法链接来使代码流畅。
但我无法理解——在面向对象的语言中,我们总是可以创建一个对象并调用与之相关的方法。那么 fluent API 有什么不同呢? Fluent API 还添加了哪些其他功能?
【问题讨论】:
标签:
api
dsl
fluent-interface
method-chaining
【解决方案1】:
使用流畅的接口,您可以编写返回调用该方法的对象(通常是 self 或 this)的方法,并将传统的返回值作为状态变化来处理那个物体。如果你看看一些使用流利接口的 Javascript 库,它可以更容易地处理列表和空值,因为它们可以像处理单个对象一样处理。流畅接口的缺点是它们倾向于创建具有一大堆职责的单体上帝对象。
我不希望它们在任何地方都被使用(因为上帝对象问题),但它们有时很好。