الوالد يدعو طريقة التنفيذ

الوالد يدعو طريقة التنفيذproxyFunc.apply ويمر كمعلمات وتعديل هذه الحجج وسائط الصفيف. ثم عندما الدالة المرتبطة متغير proxyFunc يتم تنفيذها ، كلما كان هذا هو المشار إليه ، على سبيل المثال الصحيح الكائن المشار إليها. باستخدام تطبيق مفيد للغاية وكيل ويبسط طريقة التنفيذ. والجانب السلبي هو أن الطريقة الأصلية التي تم تمريرها إلى الأسلوب الوكيل يجب أن ينطبق أيضا استخدام. إذا كان عند استدعاء الأسلوب الأصلي وظيفة وكيل لا يستخدم تطبيق ، ثم أخطاء قد تكون ولدت.

  

عندما تنفذ ، والبرمجية التي تم إنشاؤها ستعمل بشكل صحيح. ويكمن التحدي في توليد الشفرة. نهج واحد هو لإنشاء منطقة عازلة النص الذي يمثل التنفيذ الكامل لأسلوب الوكيل. ثمة نهج آخر هو حيوي لتوليد وتقييم بعض أجزاء البرمجية التي تم إنشاؤها ، واستخدام وظيفة ديناميكية لأجزاء أخرى. كل واحد من هذه الحلول هو مشكلة ، والحل الأفضل هو استخدام الأدوية الجنيسة جافا سكريبت. الجنيسة باستخدام جافا سكريبت ، يمكنك تحديد رمز المطلوب ، وعلى الجوانب السلوكية في وقت يمكن توسيعها. رمز التالي هو جيل كامل الوكيل الحل.

 المصدر : / الانترنت / الجذر / مخطوطات / jaxson / Common.js الوكيل : وظيفة (مثلا ، funcIdentifier ، newFunc) (اذا (! سبيل المثال [funcIdentifier]) (رمي خطأ جديدا ( "أسلوب لا وجود لها على هذا الكائن (" funcIdentifier + + " ( ") ؛) proxyPrototype فار = الدالة () (origFunc فار = __orig ؛ فار proxyFunc = __proxy ؛ سائط فار = صفيف الجديدة () ؛ ل (فار c1 = 0 ؛ c1 <arguments.length ؛ c1 + +) (وسائط. دفع (الحجج [0]) ؛) args.push (origFunc) ؛ args.push (الحجج) ؛ عودة proxyFunc.apply (هذا ، وسائط) ؛) سبيل المثال [funcIdentifier] = Generics.expand (proxyPrototype ، (__orig : مثلا [ funcIdentifier] ، __proxy : newFunc)) ؛) ،

تنفيذ الوكيل لا يحتاج الى كثير من التفسير ، لأن رمز سبق يفسر إلى حد كبير. نظرة على تعريف المتغير proxyPrototype ، وستلاحظ التشابه إلى المثالي البرمجية التي تم إنشاؤها في جميع أنحاء شرح المادة. والفرق الوحيد مع proxyPrototype والرمز المثالي هو أن القيم لorigFunc وproxyFunc لم تحدد.

المتغيرات origFunc وproxyFunc تم تكليفهم __orig و__proxy القيم المتغيرة ، التي هي التعريف المستخدمة في الأدوية وجافا سكريبت التوسع. الدعوة إلى Generics.expand ستوسع عازلة ليشابه العازلة المثالي. المعلمات إلى الأسلوب الوكيل سبيل المثال ، على سبيل المثال والتي تمثل وجوه لتوليد وكيل طريقة التنفيذ ؛ funcIdentifier ، وهو ما يمثل العازلة سلسلة من الأسلوب إلى الوكيل ؛ وnewFunc ، الذي يمثل وظيفة وكيل التي يتم استدعاؤها من قبل الأصلي.

ويمكن أن تستخدم أسلوب الوكيل كما هو موضح في المثال التالي. المصدر : / الانترنت / الجذر / مقالات اياكس / جافا سكريبت / automated_proxy proxy.html : الدالة () (cls فار = DefinedClass الجديدة () ؛ معلومات ( "automated_proxy (cls.defined | قبل)" ، cls.defined.toString ()) ؛ الأوب . الوكيل (cls ، "المعرفة" ، وظيفة (tstValue ، toCall ، وسائط) (معلومات ( "proxyfunction" ، "المعلمة (" tstValue + + ") وردت العد وسيطة (" arguments.length + + ") الاعتماد الأصلي وسيطة (" + + args.length ")")؛toCall.apply (هذا ، وسائط) ؛)) ؛ معلومات (" automated_proxy (cls.defined | بعد) "، cls.defined.toString ()) ؛ cls.value = 10 ؛ cls.defined (10) ؛)

في التنفيذ ، ونوع DefinedClass مثيل والمخصصة للمتغير cls. لأغراض التوضيح ، تنفيذ cls.defined يتم إنشاؤها (معلومات (...،cls.defined.toString)) لاظهار ما الأصلي هو طريقة التنفيذ ، والدعوة إلى ops.proxy على المعلمات الثلاث ، والأولين معلمات (cls و "المعرفة") واضحة. المعلمة الثالث هو الأسلوب الوكيل ، وفي حالة سبيل المثال ، فمن مضمنة الدالة المعرفة. المعلمة الثالث لا يجب أن تكون وسيلة مضمنة ، بل يمكن أن يكون مرجعا وظيفة أو لآخر مثيل فئة. وبعد انتهاء المكالمة لops.proxy هي دعوة أخرى إلى وظيفة اضافية لتوضيح نسخة معدلة من طريقة cls.defined.

معلومات سرية لاختبار فهمك ، تشغيل التعليمات البرمجية من اختبار عينات لمعرفة الكيفية التي يعمل رمز. السطر الأخير من التعليمات البرمجية الذي يستدعي الأسلوب تعريف يوضح أن أسلوب الوكيل يسمى قبل الأسلوب الأصلي. عند تنفيذ نمط وكيل للأسلوب ، والحفاظ على النقاط التالية في الاعتبار :

• وكيل نمطا لأسلوب يطبق عندما تريد تصفية ، preprocess والمعلمات postprocess قبل (إذا) التي يتم تمريرها إلى الأسلوب.

• وتطبيق الأسلوب الوكيل هو المسؤول عن استدعاء الأسلوب الأصلي.

• وكيل لنمط الأسلوب الأفضل تضمين المهام التي تنفذها داخل وظائف. والاستفادة من استخدام هذا النهج هو أن جزءا لا يتجزأ من وظيفة ويمكن الرجوع إليها من قبل كائن من الحالات الأخرى دون إفساد للتنفيذ الأسلوب.

• وكيل نمطا لأسلوب يمكن أن يكون جزءا لا يتجزأ من عدة مرات.

مقال مقدم من سونيا Lande


تنويه :موقعنا على الانترنت ليست مسؤولة عن محتوى هذه المادة. Webarticles هو حر للمعلومات.
المهم : هذه المادة "الأصل طريقة تنفيذ المكالمات" وقد ترجم من قبل البرمجيات التلقائي. نشعر بالاسف من اجل أي الأخطاء الإملائية التي قد حدث. شكرا لتفهمكم.


Online: 242 users browsing the articles directory