بعد دراسة بعناية DSL لفترة من الوقت ، وجدت العديد من الأشياء المثيرة للاهتمام. الشيء الذي يستخدمه JavaScript أكثر هو على الأرجح هو مكالمات السلاسل (سلاسل الطريقة ، وهي تسلسل الطريقة). ومن المثير للاهتمام ، أشار مارتن فلاور:
نسخة الكود كما يلي:
لقد لاحظت أيضًا وجود اعتقاد خاطئ شائع - يبدو أن العديد من الأشخاص يساويون واجهات بطلاقة مع تسلسل طريقة. من المؤكد أن السلاسل هي تقنية شائعة لاستخدامها مع واجهات بطلاقة ، ولكن الطلاقة الحقيقية أكثر من ذلك بكثير.
كثير من الناس يعادلون مكالمات السلسلة مع واجهات سلسة. ومع ذلك ، تعد مكالمات السلسلة طريقة شائعة للواجهات السلسة ، وهناك أكثر من مجرد واجهات ناعمة حقيقية.
DSL واجهة سلسة
تتمثل النية الأصلية لواجهة سلسة في إنشاء واجهة برمجة تطبيقات قابلة للقراءة ، بعد كل شيء ، يتم كتابة الرمز ليراها الناس.
وبالمثل ، دعونا نلقي نظرة على DOM في وقت مبكر ، استخدمنا Cascade Method to Looting
نسخة الكود كما يلي:
var btn = document.createElement ("button") ؛ // قم بإنشاء عنصر <button>
var t = document.createTextNode ("Click Me") ؛ // إنشاء عقدة نصية
btn.appendchild (t) ؛ // إلحاق النص بـ <button>
document.body.appendchild (BTN) ؛ // إلحاق <button> to <body>
وإذا كتبت في jQuery ، هذا كل شيء
نسخة الكود كما يلي:
$ ('<span>'). إلحاق ("Click Me") ؛
إلخ.
حتى نتمكن من إنشاء مثال بسيط لإظهار أبسط DSL
نسخة الكود كما يلي:
func = (function () {
this.add = function () {
console.log ('1') ؛
إرجاع هذا ؛
} ؛
this.result = function () {
console.log ('2') ؛
إرجاع هذا ؛
} ؛
إرجاع هذا ؛
}) ؛
var func = new func () ؛
func.add (). result () ؛
ومع ذلك ، هذا يبدو وكأنه مولد التعبير.
مولد التعبير DSL
يوفر كائن مولد التعبير مجموعة من الواجهات المتماسكة التي يتم تحويلها بعد ذلك إلى مكالمات إلى واجهة برمجة تطبيقات مسارات الأوامر الأساسية.
مثل API ، يمكننا أن نرى في بعض واجهات برمجة التطبيقات حول قواعد البيانات:
نسخة الكود كما يلي:
var query =
SQL ("حدد الاسم ، DESC من واجهة المستخدم")
Where ('Price <' ، $ (params.max_price) ، و ،
'التخليص =' ، $ (params.clearance))
.orderby ('name asc') ؛
هناك مشكلة في سلسلة مكالمات هذه الغاية. لم ننتهي في نفس الكود على النحو الوارد أعلاه ، وهو أمر محير للغاية. . يبدو أن إضافة استعلام ونهاية نتيجة جيدة.
آخر
طريقة سلسلة
يتم التعبير عنه على النحو التالي:
نسخة الكود كما يلي:
AB () ؛
AC () ؛