ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript DSL の流暢なインターフェイス (チェーン呼び出しを使用) example_javascript スキル

JavaScript DSL の流暢なインターフェイス (チェーン呼び出しを使用) example_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 16:09:241491ブラウズ

DSL をしばらく注意深く研究した結果、JavaScript で最もよく使用されるものの 1 つは、おそらく連鎖呼び出し (メソッド連鎖) であることがわかりました。 興味深いことに、Martin Flower 氏は次のように指摘しました。

コードをコピー コードは次のとおりです:

また、よくある誤解にも気付きました。多くの人が流暢なインターフェイスをメソッド チェーンと同一視しているようです。確かにチェーンは流暢なインターフェイスで使用される一般的な手法ですが、真の流暢さはそれ以上のものです。

多くの人は、連鎖呼び出しを流暢なインターフェイスと同一視します。ただし、チェーン呼び出しは流暢なインターフェイスの一般的な方法であり、実際の流暢なインターフェイスはそれ以上のものです。

DSL スムーズ インターフェイス

流暢なインターフェースの本来の目的は、読みやすい API を構築することです。結局のところ、コードは人が読めるように書かれています。

同様に、先ほどメソッド カスケードを通じて DOM をどのように操作したかを簡単に見てみましょう

コードをコピー コードは次のとおりです:

var btn = document.createElement("BUTTON") //


$('').append("クリックしてください");


待ってください

それで、この最も単純な DSL を示す簡単な例を作成できます


Func = (function() {
This.add = function(){
console.log('1');
これを返します;
};
This.result = function(){
console.log('2');
これを返します;
};
これを返してください;
});

var func = new Func(); func.add().result();



ただし、これは式ジェネレーターのように見えます。


DSL 式ジェネレーター

式ジェネレーター オブジェクトは、コヒーレント インターフェイスのセットを提供し、コヒーレント インターフェイス呼び出しを基礎となるコマンド クエリ API への呼び出しに変換します。

このような API は、データベースに関するいくつかの API で見られます。


var クエリ =
SQL('ウィジェットから名前、説明を選択')
.WHERE('価格 < ', $(params.max_price), AND,
'クリアランス = ', $(params.clearance))
.ORDERBY('name asc');


連鎖呼び出しに関する問題の 1 つは、上記のコードには終わりがないため、非常に混乱します。 。クエリと終了を追加すると良い結果が得られるようです。

その他

メソッドカスケード

以下のように表現します。



a.b();
a.c();


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。