الفرق بين المراجعتين لصفحة: «Refactoring/switch statements»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:استخدام التعليمة Switch}}</noinclude> == توصيف المشكلة == وجود تركيبٍ معقَّدٍ لتعليمة <code>...'
 
ط مراجعة وتدقيق.
 
سطر 32: سطر 32:
[[تصنيف:Refactoring]]
[[تصنيف:Refactoring]]
[[تصنيف:Refactoring Smells]]
[[تصنيف:Refactoring Smells]]
[[تصنيف:Refactoring Conditionals]]
[[تصنيف:Refactoring Object-Orientation Abusers]]

المراجعة الحالية بتاريخ 13:43، 26 فبراير 2019

توصيف المشكلة

وجود تركيبٍ معقَّدٍ لتعليمة switch أو عدّة تعليمات if متسلسلة.

أسبابها

ما يميِّز البرمجة كائنيّة التوجّه (OO) هو اعتمادها النادر على المعاملين switch و case، إذ تُوزَّع شيفرة switch بمواقع مختلفة من البرنامج بدلًا من تجمعيها في تعليمة switch واحدةٍ، وعند إضافة شرطٍ جديدٍ عليك إيجاد كافّة شيفرات switch لتعديلها، وكقاعدة عامّة: وجود تعليمة switch يعني أن عليك البدء بالتفكير بمبدأ التعدديّة الشكليّة (polymorphism).

وما الحل؟

إليك المزيد

ستحصل بحلِّ المشكلة على شيفرة أكثر تنظيمًا.

تجاهل المشكلة

  • عند استخدام تعليمة switch لتنفيذ مهامِّ بسيطةٍ جدًا في فروعها، فلا داعي حينئذٍ لأيّ من التغييرات بالشيفرة.
  • تًستخدم تعليمة switch غالبًا في نمط التصميم المُنتِج (Factory design pattern) وعندها لا يُعدُّ وجودها بالشيفرة مشكلةً ومن الممكن تجاهلها، وللمزيد من التفاصيل راجع التوابع المُنتجة (Factory methods) أو المُنتِج المُجرَّد (abstract Factory) لاختيار الصنف المُنشَأ.

انظر أيضًا

مصادر