【问题标题】:Is jQuery method chaining an example of fluent programming?jQuery 方法链接是流畅编程的一个例子吗?
【发布时间】:2014-05-27 13:50:42
【问题描述】:

我对 JavaScript/jQuery 有点陌生,但是当我看到方法链接的示例时,我立刻觉得很熟悉。其他接口(如 LINQ)执行类似的操作,其中一组方法的返回类型与它们操作的类型相同(TweetSharp 执行非常相似的操作)。这是流畅编程的一个例子吗?我读到的关于 jQuery 的大部分内容都说其他库“借用”了这种方法链接的想法——这个想法是否起源于 jQuery?

【问题讨论】:

  • 是的,但我认为这种方法在 jQuery 之前就已经存在。但我现在并不完全理解您所说的 fluent 编程 是什么意思。听起来更像是高速编程;)

标签: jquery fluent-interface method-chaining


【解决方案1】:

jQuery 确实在很大程度上遵循builder pattern / fluent interface,但它绝对不是设计模式的先驱。其他库很可能在 jQuery 之后效仿并借鉴了它的方法。正是 jQuery 声名鹊起,才让它看起来起源于 jQuery。

【讨论】:

    【解决方案2】:

    单独的链接并不能形成流畅的界面。 "fluent interface" 一词似乎是由 Martin Fowler 推广的,他是当代软件理论方面最多产的作者之一(尽管他也没有发明这项技术)。

    Fowler 澄清说,方法链接只是指返回对象引用的方法,而流畅的接口更类似于特定领域的语言,并且(理想情况下)设计为更像自然语言而不是代码。

    【讨论】:

      【解决方案3】:

      JQuery 当然没有发明方法链;这在 JavaScript 和许多其他语言中已经成为可能。

      方法链可能在很多人眼中被 JQuery合法化。许多 Java 程序员仍然坚持对象的函数应该只返回 other 对象,而不是对象本身。我记得 10 年前我被一个 Java 邮件列表修改了,因为我有其他建议:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-27
        • 1970-01-01
        • 2011-09-03
        • 2014-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多