في المجتمع، عند تقييم قدرة الشخص وقيمته، غالبًا ما يكون هناك معياران مختلفان: أحدهما "يعتمد على العلاقات" والآخر "يعتمد على القدرة". ويتجسد كلا المعيارين في ثقافات وصناعات وقيم شخصية مختلفة، ولكل منهما مؤيديه ومنتقديه.
يوجد في لغات البرمجة نوعان من المعايير التي تنظم التعليمات البرمجية بطرق مختلفة، وتربط هياكل البيانات بالوظائف. ستناقش هذه المقالة بإيجاز تطبيق ومبدأ عمل هذين المعيارين المشتركين.
في لغة جافا سكريبت، يتم توفير الكلمة الأساسية للفئة، والتي يمكننا استخدامها لتحديد الفئات. الأهم من ذلك، أن الفئات قابلة للتوسيع، وعندما يتم استدعاء الأساليب على مثيل، فإنها تبحث عن تعريفات الأساليب بترتيب سلسلة النموذج الأولي. على سبيل المثال:
class Animal { move() { return 'move' } } class Monkey extends Animal { jump() { return 'jump' } } class Human extends Monkey { write() { return 'write' } }
extends يمكن أن تساعدنا الكلمات الأساسية في تحديد فئة جديدة تمتد من الفئات الأخرى. يمكننا الحصول على سلسلة النموذج الأولي مثل هذا:
let me = new Human() let proto = me.__proto__ let r = [] while (proto !== null) { r.push(proto.constructor.name) proto = proto.__proto__ }
سنحصل على r مثل هذا: ["إنسان"، "قرد"، "حيوان"، "كائن"]. عندما نستدعي طريقة ما، فإن نجاح استدعاء الطريقة يعتمد على ما إذا كان هناك تعريف مطابق في سلسلة النموذج الأولي. على سبيل المثال، إذا اتصلت بـ me.move()، فسيكون لها تعريف في فئة Animal، وسينجح الاتصال.
هذا هو نموذج الفصل، الذي أحب أن أسميه نموذجًا "علائقيًا"، والذي يمكن استدعاؤه طالما تم تعريفه في فئة المثيل نفسه، أو في الفصل الأصلي، وفئة الأجداد، وهكذا على.
بالمقارنة مع النموذج القائم على العلاقات، فإن النموذج القائم على الكفاءة أبسط بكثير. طالما أن المثيل يلبي سمة معينة، يمكن للطريقة المقابلة أن تعمل على المثيل بغض النظر عن العلاقة بين المثيل.
let me = { moveable: true, freezable: false } function move(x) { return x.moveable ? 'move' : undefined } function freeze(x) { return x.freezable ? 'freeze' : undefined }
في هذا النموذج، تكون البيانات والأساليب مستقلة عن بعضها البعض. الميزة هي أنها موجزة ومباشرة، ولكن العيب واضح، بسبب استقلالية الطريقة والبيانات، من الصعب تجاوز تعريف الطريقة.
بعد تقديم طريقتين لربط هياكل البيانات وطرقها، يمكننا أن نعتقد أنه عندما يكون من الضروري تنفيذ طرق بوظائف مختلفة تحمل نفس الاسم وفقًا لفئة البيانات، فمن المستحسن استخدام نموذج الفئة العلائقية . عندما تكون الطريقة عادةً ثابتة نسبيًا، وتكون البيانات قابلة للتغيير، وتعمل نفس الطريقة على بيانات مختلفة، فيمكن استخدام النموذج القائم على الكفاءة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3