سحب الحقل لأعلى (Pull Up Field)

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

المشكلة

يحتوي صنفان على نفس الحقل.

الحل

إزالة الحقل من الأصناف الفرعية ونقله إلى الصنف الأعلى.

مثال

قبل إعادة التصميم

يحتوي الصنفان Tank و Soldier المتفرعان من الصنف Unit على الحقل المشترك health:

يحتوي الصنفان Soldier و Tank على نفس الحقل health.
يحتوي الصنفان Soldier و Tank على نفس الحقل health.

بعد إعادة التصميم

إزالة الحقل health من الأصناف الفرعية (الصنف Soldier والصنف Tank) ونقله إلى الصنف Unit الأب:

أُزيل الحقل health من الأصناف الفرعية ونُقل إلى الصنف الفائق.
إزالة الحقل health من الأصناف الفرعية ونُقل إلى الصنف الأب.

لم إعادة التصميم؟

تنمو الأصناف الفرعية وتتطور بشكل منفصل، مما يتسبب في ظهور حقول وتوابع متطابقة (أو شبه متطابقة).

فوائد تطبيق الحل

  • إزالة تكرار الحقول في الأصناف الفرعية.
  • تسهيل النقل المتتابع للتوابع المتكررة إذا كانت موجودة في الأصناف الفرعية إلى الصنف الفائق.

آلية الحل

  1. تأكد من أن الحقول تُستخدَم لنفس الاحتياجات في الأصناف الفرعية.
  2. إذا كان للحقول أسماء مختلفة، أعطها نفس الاسم واستبدل كل المراجع إلى الحقول في الشيفرة الحالية.
  3. أنشئ حقلًا من نفس الاسم في الصنف الأعلى. لاحظ أنه إذا كانت الحقول خاصة، فيجب حماية حقل الصنف الأعلى.
  4. أزل الحقول من الأصناف الفرعية.
  5. قد ترغب في أخذ التغليف الداخلي للحقول في الاعتبار بالنسبة للحقل الجديد، من أجل إخفائه خلف توابع الوصول.

انظر أيضًا

مصادر