ConstructiCat Logo
CodeBust.
Browse section ▾

تبسيط استدعاءات الدوال.

Code Smells Mascot
إضافة معامل

المشكلة: لا تمتلك الدالة البيانات الكافية لتنفيذ إجراءات معينة. الحل: قم بإنشاء معامل جديد لتمرير البيانات اللازمة.

001
Design Patterns Mascot
إخفاء الدالة

المشكلة: لا يتم استخدام الدالة بواسطة فئات أخرى أو تُستخدم فقط داخل التسلسل الهرمي لفئتها الخاصة. الحل: اجعل الدالة خاصة (private) أو محمية (protected).

002
Architectural Patterns Mascot
إدخال كائن المعاملات (Introduce Parameter Object)

المشكلة: تحتوي توابعك على مجموعة متكررة من المعاملات. الحل: استبدل هذه المعاملات بكائن.

003
Refactoring Mascot
جعل التابع يقبل معاملات (Parameterize Method)

المشكلة: تقوم توابع متعددة بإجراءات متشابهة تختلف فقط في قيمها الداخلية أو أرقامها أو عملياتها. الحل: اجمع هذه التوابع معاً باستخدام معامل يمرر القيمة الخاصة المطلوبة.

004
Design Patterns Mascot
الحفاظ على الكائن كاملاً (Preserve Whole Object)

المشكلة: تحصل على قيم متعددة من كائن ثم تمررها كمعاملات إلى تابع. الحل: بدلاً من ذلك، جرب تمرير الكائن بأكمله.

005
Antipatterns Mascot
إزالة المعامل (Remove Parameter)

المشكلة: لا يُستخدم المعامل داخل متن التابع. الحل: أزل المعامل غير المستخدم.

006
Antipatterns Mascot
إزالة تابع التعيين (Remove Setting Method)

المشكلة: يجب تعيين قيمة الحقل فقط عند إنشائه، ولا تتغير في أي وقت بعد ذلك. الحل: لذا احذف التوابع التي تقوم بتعيين قيمة هذا الحقل.

007
Design Patterns Mascot
إعادة تسمية التابع (Rename Method)

المشكلة: لا يوضح اسم التابع ما يفعله التابع. الحل: أعد تسمية التابع.

008
Antipatterns Mascot
استبدال الباني بتابع مصنع (Replace Constructor with Factory Method)

المشكلة: لديك باني (Constructor) معقد يقوم بشيء أكثر من مجرد تعيين قيم المعاملات في حقول الكائن. الحل: أنشئ تابعاً مصنعاً (Factory Method) واستخدمه لاستبدال استدعاءات الباني.

009
Architectural Patterns Mascot
استبدال رمز الخطأ باستثناء

المشكلة: دالة تعيد قيمة خاصة تشير إلى وجود خطأ؟ الحل: قم برمي استثناء (exception) بدلاً من ذلك.

010
Design Patterns Mascot
استبدال الاستثناء باختبار شرطي

المشكلة: تقوم برمي استثناء في مكان يمكن لاختبار بسيط فيه القيام بالمهمة؟ الحل: استبدل الاستثناء باختبار شرطي.

011
Antipatterns Mascot
استبدال المعامل بدوال صريحة

المشكلة: تنقسم الدالة إلى أجزاء، يتم تشغيل كل منها اعتمادًا على قيمة معامل (parameter). الحل: استخلص الأجزاء الفردية من الدالة إلى دوال خاصة بها واستدعها بدلاً من الدالة الأصلية.

012
Architectural Patterns Mascot
استبدال المعامل باستدعاء دالة

المشكلة: استدعاء دالة استعلام (query method) وتمرير نتائجها كمعاملات لدالة أخرى، في حين أن هذه الدالة يمكنها استدعاء الاستعلام مباشرة. الحل: بدلاً من تمرير القيمة عبر معامل، حاول وضع استدعاء الاستعلام داخل جسم الدالة.

013
Antipatterns Mascot
فصل الاستعلام عن التعديل

المشكلة: هل لديك دالة تعيد قيمة ولكنها تغير أيضًا شيئًا ما داخل الكائن؟ الحل: قسّم الدالة إلى دالتين منفصلتين. كما تتوقع، يجب أن تعيد إحداهما القيمة والأخرى تعدل الكائن.

014