ConstructiCat Logo
CodeBust.
Browse section ▾

تقسيم المتغير المؤقت.

Problem

لديك متغير محلي يُسخدم لتخزين قيم وسيطة مختلفة داخل دالة (باستثناء متغيرات حلقات التكرار).

Solution

استخدم متغيرات مختلفة للقيم المختلفة. يجب أن يكون كل متغير مسؤولاً عن شيء معين واحد فقط.

##Example

Before
double temp = 2 * (height + width);
System.out.println(temp);
temp = height * width;
System.out.println(temp);
After
final double perimeter = 2 * (height + width);
System.out.println(perimeter);
final double area = height * width;
System.out.println(area);

##Why Refactor

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

##Benefits

  • يجب أن يكون كل مكون من مكونات كود البرنامج مسؤولاً عن شيء واحد وواحد فقط. هذا يسهل صيانة الكود بشكل كبير، حيث يمكنك بسهولة استبدال أي شيء معين دون خوف من حدوث آثار غير مقصودة.

  • يصبح الكود أكثر مقروئية. إذا تم إنشاء متغير منذ فترة طويلة على عجل، فمن المحتمل أن يكون له اسم لا يوضح أي شيء: مثل k أو a2 أو value وما إلى ذلك. ولكن يمكنك إصلاح هذا الوضع عن طريق تسمية المتغيرات الجديدة بطريقة مفهومة وواضحة بذاتها. قد تشبه هذه الأسماء customerTaxValue و cityUnemploymentRate و clientSalutationString وما شابه ذلك.

  • تقنية إعادة الهيكلة هذه مفيدة إذا كنت تتوقع استخدام تقنية استخلاص الدالة (Extract Method) لاحقًا.

##How to Refactor

  1. ابحث عن أول مكان في الكود يتم فيه إعطاء قيمة للمتغير. هنا يجب عليك إعادة تسمية المتغير باسم يتوافق مع القيمة التي يتم تعيينها له.

  2. استخدم الاسم الجديد بدلاً من الاسم القديم في الأماكن التي تُستخدم فيها هذه القيمة للمتغير.

  3. كرر ذلك حسب الحاجة للأماكن التي يتم فيها تعيين قيمة مختلفة للمتغير.