مرجع
آخر الزيارات

نمط التفويض

316 كلمة•0 مشاهدة•🗒️ منذ 23 ساعة
باختصار: في هندسة البرمجيات ، نمط التفويض هو نمط تصميم موجه للكائنات يسمح بتركيب الكائنات للوصول لإعادة استخدام الكود البرمجي نفسه مثل الميراث . تتناول المقالة 6 أقسام، منها «}»، «مثال» و«تعريف».
المحتويات
  1. }
  2. مثال
  3. تعريف
  4. الجانب برمجة
  5. }
  6. دعم اللغة

في البداية، في هندسة البرمجيات ، نمط التفويض هو نمط تصميم موجه للكائنات يسمح بتركيب الكائنات للوصول لإعادة استخدام الكود البرمجي نفسه مثل الميراث . وفيما يلي تفاصيل أوسع عن ذلك.

وفي هذا الصدد، تستعمل هذه المقالة "إرسال الكائن/كائن الاستقبال" للكائنين، بدلاً من "استقبال الكائن/التفويض"، مع التركيز على الكائنات التي ترسل وتستقبل استدعاء التفويض، وليس الاستدعاء (استدعاء الدالة) الأصلي.

من جانب آخر، في التفويض، يعالج الكائن الطلب عن طريق التفويض إلى كائن ثانٍ ( المفوض ). المفوض هو كائن مساعد ، ولكن مع السياق الأصلي . باستخدام دعم التفويض المعتمد على اللغة، يتم ذلك ضمنيًا من خلال نفس (الكملة المفتاحية self او this) المفوض يشير إلى الكائن الأصلي (المرسل)، وليس المفوض (الكائن المتلقي). في نمط التفويض، يتم تحقيق ذلك عن طريق تمرير الكائن الأصلي بشكل صريح إلى المفوض، كقيمة للطريقة (قيمة للدالة البرمجية). غالبًا ما يتم استخدام "التفويض" بشكل فضفاض للإشارة إلى المفهوم المميز لإعادة التوجيه ، حيث يستعمل الكائن المرسل ببساطة العضو المقابل في الكائن المتلقي، ويتم تقييمه في سياق الكائن المتلقي ، وليس الكائن الأصلي.

}

إضافةً إلى ذلك، // The ClosedShape implementation of Window delegates to that of the Rectangle that is bounds

علاوةً على ذلك، class Window(private val bounds: Rectangle) : ClosedShape by bounds

أنظر كذلك

مثال

من جهة ثانية، في المثال أدناه (باستخدام لغة برمجة Kotlin )، يقوم الصنف (كلاس) Window بتفويض استدعاء area(المساحة) إلى كائن المستطيل الداخلي الخاص بها (المفوض الخاص بها).class Rectangle(val width: Int, val height: Int) {

  • fun area = width * height
  • }
  • class Window(val bounds: Rectangle) {
  • // Delegation
  • fun area = bounds.area
  • }

تعريف

في هذا الإطار، في مقدمة كتاب عصابة الأربعة لجاما وآخرون. 1994، تم تعريف التفويض على النحو التالي:

الجانب برمجة

  • التفويض (الحوسبة)
  • نمط التصميم
  • نمط الواجهة
  • مراجع
  • روابط خارجية
  • ما هو التفويض ، ويكي ويكي ويب

}

override fun area = width * height

من جانب آخر، class Rectangle(val width: Int, val height: Int) : ClosedShape {

دعم اللغة

وفي السياق ذاته، تتمتع بعض اللغات بدعم خاص للتفويض المدمج. مثلًا، في لغة برمجة Kotlin ، يتم تفويض by المفتاحية إلى واجهة كائن آخر:interface ClosedShape {

fun area: Int

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.