يفصل نمط الجسر الجزء التجريدي عن جزء التنفيذ ، بحيث يمكن تغيير كلاهما بشكل مستقل ويمكن أن يعملوا معًا بشكل متناغم. يمكن تغيير كل من الجزء التجريدي وجزء التنفيذ بشكل مستقل دون التأثير على بعضهما البعض ، مما يقلل من اقتران الكود وتحسين قابلية التوسع في الكود.
وفقًا لتعريف GOF ، فإن دور وضع الجسر هو "عزل التجريد عن تنفيذه حتى يتمكن الاثنان من التغيير بشكل مستقل." هذا النمط له فائدة كبيرة للبرمجة التي تعتمد على الحدث شائعة في جافا سكريبت.
واحدة من أكثر التطبيقات شيوعًا وعمليًا لوضع الجسر هي وظيفة رد اتصال مستمع الحدث. مثال: مستمع الحدث ، يتضمن البيانات التي تم معالجتها في وظائف رد الاتصال ، وبرمجةها من خلال واجهات بدلاً من التطبيقات.
النظرية الأساسية
تعريف نمط الجسر: أجزاء مجردة منفصلة عن أجزاء التنفيذ الخاصة بهم بحيث يمكن تغييرها جميعًا بشكل مستقل.
يتكون وضع الجسر بشكل أساسي من 4 أدوار:
(1) فئة مجردة
(2) توسيع الطبقات التجريدية
(3) تنفيذ واجهة الفصل
(4) فئة تنفيذ محددة
وفقًا لخصائص لغة JavaScript ، نقوم بتبسيطها إلى أدوار:
(1) توسيع الطبقات التجريدية
(2) فئة تنفيذ محددة
كيف تفهم وضع الجسر؟ دعونا نعطي مثالا بعد ذلك
تنفيذ وضع الجسر
مفتاح فهم فكرة نمط الجسر هو فهم فكرته عن فصل الأجزاء التجريدية وتحقيق الأجزاء. لنقدم أمثلة لتوضيح
أسهل وضع جسر
في الواقع ، فإن كل وظيفة نستخدمها في أغلب الأحيان هي وضع جسر نموذجي. نحاكيها على النحو التالي:
var كل = function (arr ، fn) {for (var i = 0 ؛ i <arr.length ؛ i ++) {var val = arr [i] ؛ if (fn.call (val ، i ، val ، arr)) {return false ؛ }}} var arr = [1 ، 2 ، 3 ، 4] ؛ كل (arr ، function (i ، v) {arr [i] = v * 2 ؛})في هذا المثال ، نقوم بتركيب صفيف ARR من خلال كل وظيفة. على الرغم من أن هذا المثال شائع جدًا ، إلا أنه يحتوي على نمط جسر نموذجي.
في هذا المثال ، فإن الجزء التجريدي هو كل وظيفة ، وهي الفئة التجريدية الموسعة المذكورة أعلاه ، وجزء التنفيذ هو FN ، أي فئة التنفيذ الملموسة. يمكن تغيير الجزء التجريدي وجزء التنفيذ بشكل مستقل. على الرغم من أن هذا المثال بسيط ، إلا أنه تطبيق نموذجي لوضع الجسر.
وضع الجسر في تطوير المكونات الإضافية
سيناريو واحد مناسب لوضع الجسر هو تطوير المكونات. من أجل التكيف مع المناسبات المختلفة ، سيكون للمكونات العديد من التغييرات في أبعاد مختلفة. يمكن تطبيق وضع الجسر هنا ، وفصل تجريده عن التنفيذ ، مما يجعل المكون أكثر قابلية للامتداد.
لنفترض أننا نريد تطوير مكون إضافي منبثق ، والذي يحتوي على أنواع مختلفة من النوافذ المنبثقة: تذكيرات الرسائل العادية ، وتذكيرات الخطأ ، وطريقة عرض كل تذكير مختلفة. هذا سيناريو تغيير متعدد الأبعاد نموذجي. أولاً ، نحدد فئتين: نافذة منبثقة للرسالة العادية ونافذة رسالة منبثقة.
وظيفة messagedialog (الرسوم المتحركة) {this.animation = الرسوم المتحركة ؛} messagedialog.prototype.show = function () {this.animation.show () ؛} وظيفة errordialog (الرسوم المتحركة)هاتان الفئتان هما الأجزاء المجردة المذكورة أعلاه ، أي الفئات المجردة الممتدة ، وكلاهما يحتوي على الرسوم المتحركة عضو.
يتم عرض النوافذ المنبثقة من خلال طريقة العرض ، لكن تأثيرات الرسوم المتحركة مختلفة. نحدد فئتين لتأثير العرض على النحو التالي:
الوظيفة linerAnimation () {} lineranimation.prototype.show = function () {console.log ("إنه بطانة") ؛} وظيفة easeanimation () {} easeanimation.prototype.show = function () {console.log ("إنه سهولة") ؛}هاتان الفئتان هما فئات تنفيذ محددة ، والتي تحقق تأثيرات عرض محددة. فكيف نسميها؟
var message = new messagedialog (new lineranimation ()) ؛ message.show () ؛ var error = new errordialog (new easeanimation ()) ؛ error.show () ؛
إذا أردنا إضافة تأثير رسوم متحركة ، فيمكننا تحديد فئة تأثير أخرى ونقلها.
لخص
مفتاح تعلم نموذج الجسر هو فهم الفصل بين الجزء التجريدي وجزء التنفيذ ، بحيث يمكن تغيير الاثنين بشكل مستقل دون أن يكونا مهووسين بالشكل. يحتوي المكون الإضافي JS على تغييرات مرنة ومجموعة متنوعة من السيناريوهات المعمول بها مناسبة جدًا لاستخدام هذا النموذج لتحقيقها. أهم شيء في استخدام وضع الجسر هو معرفة الأبعاد المختلفة للتغيير في النظام.
(1) مزايا وضع الجسر:
إن عزل التجريد من التنفيذ يساعد على إدارة مكونات البرنامج المختلفة بشكل مستقل.
(2) عيوب وضع الجسر:
يتم استخدام كل عنصر جسر لإضافة مكالمة دالة ، والتي لها بعض التأثير السلبي على أداء التطبيق. يزيد من تعقيد النظام. إذا تم استخدام وظيفة الجسر لتوصيل وظيفتين ، ولن يتم استدعاء إحدى الوظائف خارج وظيفة الجسر على الإطلاق ، فإن وظيفة الجسر ليست ضرورية في هذا الوقت.
وضع الجسر "يعزل التجريد عن التنفيذ بحيث يتغير الاثنان بشكل مستقل." يمكن أن يعزز نظام التعليمات البرمجية ، ويؤدي إلى تنفيذ أنظف وتحسين المرونة التجريدية. يمكن استخدامه لتوصيل مجموعة من الفئات والوظائف ، ويوفر وسيلة للوصول إلى البيانات الخاصة مع وظائف مميزة.