【问题标题】: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】:

    使用流畅的接口,您可以编写返回调用该方法的对象(通常是 selfthis)的方法,并将传统的返回值作为状态变化来处理那个物体。如果你看看一些使用流利接口的 Javascript 库,它可以更容易地处理列表和空值,因为它们可以像处理单个对象一样处理。流畅接口的缺点是它们倾向于创建具有一大堆职责的单体上帝对象。

    我不希望它们在任何地方都被使用(因为上帝对象问题),但它们有时很好。

    【讨论】:

      【解决方案2】:

      您的问题已在原始Fluent Interface blog post by Martin Fowler 中得到解答。关键是 Fluent API 的流畅性来自于特定领域语言的领域,而不仅仅是方法链。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-24
        • 2016-05-22
        • 1970-01-01
        • 2013-03-26
        • 1970-01-01
        • 2014-08-06
        相关资源
        最近更新 更多