الاستخدام الخطأ لمبادئ البرمجة كائنية التوجه (Object-Orientation Abusers)

من موسوعة حسوب
< Refactoring‏ | smells
مراجعة 13:45، 26 فبراير 2019 بواسطة جميل-بيلوني (نقاش | مساهمات) (إنشاء الصفحة.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

من مشاكل الشيفرات أيضًا التطبيقُ الخطأ وغير المكتمل لمبادئ البرمجة كائنية التوجّه (Object-Oriented)، مثل:

  1. استخدام الأصناف البديلة (alternative) ذات الواجهات (interfaces) المختلفة
  2. الوراثة الفائضة (refused bequest)
    • المشكلة: استفادة الصنف الفرعيّ من القليل فقط ممّا ورِثه عن الصنف الأعلى من توابعَ وحقولٍ، لتبقى التوابع الأخرى غيرَ مُستخدَمةٍ أو قد يُعاد تعريفها مع الكثير من الاختلافات.
    • الحل: تطبق إحدى الحلول التالية بناءً على حالة الاستخدام: تبديل الوراثة إلى تفويض، أو التخلُّص من حقول وتوابع الصنف الأعلى غير المستخدمة في الصنف الفرعيّ.
  3. الشكل المعقَّد لتعليمة switch
  4. الحقول المؤقّتة (temporary fields)
    • المشكلة: تحتوي الحقول المؤقَّتة على قيمٍ (وتُستخدَم وفقًا لها في الكائنات [objects]) ضمن شروطٍ مُحدَّدة، وتبقى فارغةً عند عدم تحقٌّق تلك الشروط.
    • الحل: عزل الحقول المؤقتَّة -وكلِّ الشيفرات المرتبطة بها- في صنفٍ (class) مستقلٍ عبر إنشاءٍ صنفٍ جديدٍ ونقلها إليه، أو إنشاء كائن null‏ (null object) واستخدامه بدلًا من الشيفرة الشرطيّة المُستخدمة للتحقُّق من وجود القيم بالحقول المؤقَّتة.

انظر أيضًا

مصادر