链式编程是否有通用术语?

时间:2011-07-04 16:20:58

标签: programming-languages

最明显的例子是jQuery,其中函数的结果是修改后的对象,您可以将相同或不同的函数应用于该对象。下面的例子来自dan的博客,但是互联网上有很多例子。

var $inner = $("<div>inner</div>")
// append it to a new outer div
  .appendTo("<div>outer</div>")
// next change the jQuery chain to the "outer" div 
  .parent()
    // append the outer div to the body
    .appendTo("body")
// finally, go back to the last destructive command, 
// giving us back a pointer to the "inner" div
  .end();

是否有关于此技术的文献?我只是看到这是以命令式方式使用(如果你调用$ inner.append($ moreInner)$ inner被修改)。使用这种编程的函数方法是否有意义(即保持对象的状态不变并返回修改对象的克隆)。

的问候, 的Jeroen

2 个答案:

答案 0 :(得分:3)

该技术通常称为Method Chaining。在上面的示例中,表单是Fluent Interface

的一部分

答案 1 :(得分:2)

它被称为 Fluent界面,请参阅http://en.wikipedia.org/wiki/Fluent_interface