إزالة رايات التحكم (Remove Control Flag)

من موسوعة حسوب
< Refactoring
مراجعة 10:59، 12 ديسمبر 2018 بواسطة Khaled-yassin (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: إزالة رايات التحكم (Remove Control Flag)}}</noinclude> == المشكلة == لديك متغيرات منطقية تعمل كر...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

المشكلة

لديك متغيرات منطقية تعمل كرايات تحكم لتعبيرات منطقية متعددة.

الحل

استخدم  break و continue و return بدلًا من هذه المتغيرات.

لم إعادة التصميم؟

تعود رايات التحكم إلى الأيام الخوالي، عندما كان يُتاح دائمًا للمبرمج "الأصيل" نقطة إدخال واحدة للدوال (سطر تعريف الدالة) ونقطة خروج واحدة (في نهاية الدالة).

لكن هذا النمط المتشدد عفا عليه الزمن في لغات البرمجة الحديثة، إذ أصبح لدينا عوامل خاصة لتعديل تدفق التحكم في الحلقات وغيرها من التركيبات المُعقدة:

  • break: إيقاف الحلقة.
  • continue: إيقاف تنفيذ فرع الحلقة الحالي والاستمرار في التحقق من شروط الحلقة في الدورة التالية.
  • return: إيقاف تنفيذ الدالة بأكملها وإعادة نتيجتها في العامل إذا ما أُعطيت.

فوائد تطبيق الحل

  • غالبا ما تكون شيفرة راية التحكم أكثر ثقلًا من الشيفرة البرمجية المكتوبة مع عوامل تدفق التحكم.

آلية الحل

  1. ابحث عن تعيين قيمة راية التحكم التي تؤدي إلى الخروج من الحلقة أو من الدورة الحالية.
  2. استبدل ذلك مع break، إذا كان هذا الخروج من الحلقة؛ ومع continue، إذا كان هذا الخروج من الدورة، أو return، إذا كنت بحاجة إلى إعادة هذه القيمة من الدالة.
  3. أزل الشيفرة البرمجية المتبقية والتحققات المقترنة براية التحكم.

مصادر