javascript接口(使用链调用)实例

在认真研究了DSL一段时间后,我发现了一些有趣的东西。Javascript最常用的项目是链调用(方法链,即方法链),Martin Flower指出这一点很有趣:

复制代码代码如下所示:

我也注意到了一个常见的误解,许多人似乎认为这是相等的,它也被称为以下三个方面。



很多人把链调用等同于流畅的接口,然而,链调用是一种常见的流接口方式,真正流畅的接口不只是一点点。

DSL流畅界面

一个流畅的接口的初衷是建立一个可读的API,毕竟,代码是写给人们的。

类似地,简单地看一下我们以前通过一系列方法来操作的DOM。

复制代码代码如下所示:

VaR建立document.createelement(按钮); / /创建一个元素

var t = document.createtextnode(点击我); / /创建一个文本节点

btn.appendchild(T); / /追加文本

document.body.appendchild(BTN); / /追加



如果你写的是jQuery,那就是它的方式。

复制代码代码如下所示:

$()追加(单击我);



等待

因此,我们可以创建一个简单的示例来显示最简单的DSL。

复制代码代码如下所示:

函数({){

this.add =函数(){

console.log(1);

返回此;

};

this.result =函数(){

Console.log ('2');

返回此;

};

返回此;

});

新函数();

Func.add(),结果();



但它看起来像一个表达式生成器。

DSL表达式生成器

表达式生成器对象提供了一组连贯的接口,然后将相干接口调用转换为底层命令查询API。

这样的api,我们可以在数据库中看到一些api:

复制代码代码如下所示:

VaR查询=

SQL('select名字,从部件的描述)

在哪里('price <<,$(参数。max_price),和,

间隙= $(params。清除))

OrderBy('name ASC);



连锁电话的一个问题就是结束它。我们在同一代码中没有结束,这是非常混乱的。添加查询和结束似乎是一个好结果。

其他

方法级联

以下内容如下:

复制代码代码如下所示:

(A.B);

(a);