2010-08-03 63 views
4

我对JavaScript/jQuery有点新鲜,但是当我看到方法链的例子时,它让我感到非常熟悉。像LINQ这样的其他接口在一组方法的返回类型与它们所使用的类型相同的情况下做了类似的操作(TweetSharp的做法非常相似)。这是流利编程的例子吗?我读过的关于jQuery的大部分内容都说其他库已经“借用”了这种方法链接的想法 - 这个想法是否源于jQuery?jQuery方法链接流利编程的例子吗?

+0

是的,但我认为这种方法是在jQuery之前。但我现在并不完全知道你的*流利编程*的含义。听起来更像是高速编程;) – 2010-08-03 17:15:21

回答

6

jQuery确实严重遵循builder pattern/fluent interface,但它肯定不是整个设计模式的先驱。其他图书馆可能会在jQuery之后采用其方法。这只是jQuery所做的名气,它使得它看起来像jQuery一样。

2

单独链接不会形成流畅的界面。术语"fluent interface"似乎已经被马丁福勒所推广,马丁福勒是软件理论中比较多产的当代作者之一(尽管他也没有发明这种技术)。

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

1

JQuery肯定没有发明方法链;它已经可以在JavaScript和许多其他语言中使用。

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