ConstructiCat Logo
CodeBust.
Browse section ▾

تبسيط التعبيرات الشرطية.

Antipatterns Mascot
دمج التعبيرات الشرطية

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

001
Antipatterns Mascot
دمج الأجزاء الشرطية المكررة

المشكلة: يمكن العثور على كود متطابق في جميع فروع الشرط. الحل: انقل الكود خارج الشرط.

002
Antipatterns Mascot
تفكيك التعبيرات الشرطية

المشكلة: لديك تعبير شرطي معقد (if-then/else أو switch). الحل: قم بتفكيك الأجزاء المعقدة من التعبير الشرطي إلى دوال منفصلة: الشرط (condition)، وثم (then)، وإلا (else).

003
Antipatterns Mascot
إدخال توكيد (Introduce Assertion)

المشكلة: لكي يعمل جزء معين من الكود بشكل صحيح، يجب أن تكون شروط أو قيم معينة صحيحة. الحل: استبدل هذه الافتراضات بفحوصات توكيد (assertions) محددة.

004
Architectural Patterns Mascot
إدخال كائن فارغ (Introduce Null Object)

المشكلة: نظراً لأن بعض التوابع تعيد قيمة null بدلاً من كائنات حقيقية، فإن لديك العديد من فحوصات التحقق من null في الكود. الحل: بدلاً من null، أعد كائناً فارغاً (Null Object) يقدم السلوك الافتراضي.

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

المشكلة: لديك متغير منطقي (Boolean) يعمل كراية تحكم لتعبيرات منطقية متعددة. الحل: بدلاً من هذا المتغير، استخدم break و continue و return.

006
Code Smells Mascot
استبدال الجمل الشرطية بتعدد الأشكال (Replace Conditional with Polymorphism)

المشكلة: لديك جملة شرطية تؤدي إجراءات مختلفة اعتماداً على نوع الكائن أو خصائصه. الحل: أنشئ فئات فرعية (Subclasses) تطابق فروع الجملة الشرطية. وفيها، أنشئ تابعاً مشتركاً وانقل الكود من الفرع المقابل للجملة الشرطية إليه. ثم استبدل الجملة الشرطية باستدعاء التابع المعني. وتكون النتيجة هي الوصول للتطبيق الصحيح عبر تعدد الأشكال (Polymorphism) اعتماداً على فئة الكائن.

007
Refactoring Mascot
استبدال الشرط المتداخل بعبارات الحماية

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

008