سحب الحقل لأعلى (Pull Up Field)
المشكلة
يحتوي صنفان على نفس الحقل.
الحل
إزالة الحقل من الأصناف الفرعية ونقله إلى الصنف الأعلى.
مثال
قبل إعادة التصميم
يحتوي الصنفان Tank
و Soldier
المتفرعان من الصنف Unit
على الحقل المشترك health
:
بعد إعادة التصميم
إزالة الحقل health
من الأصناف الفرعية (الصنف Soldier
والصنف Tank
) ونقله إلى الصنف Unit
الأب:
لم إعادة التصميم؟
تنمو الأصناف الفرعية وتتطور بشكل منفصل، مما يتسبب في ظهور حقول وتوابع متطابقة (أو شبه متطابقة).
فوائد تطبيق الحل
- إزالة تكرار الحقول في الأصناف الفرعية.
- تسهيل النقل المتتابع للتوابع المتكررة إذا كانت موجودة في الأصناف الفرعية إلى الصنف الفائق.
آلية الحل
- تأكد من أن الحقول تُستخدَم لنفس الاحتياجات في الأصناف الفرعية.
- إذا كان للحقول أسماء مختلفة، أعطها نفس الاسم واستبدل كل المراجع إلى الحقول في الشيفرة الحالية.
- أنشئ حقلًا من نفس الاسم في الصنف الأعلى. لاحظ أنه إذا كانت الحقول خاصة، فيجب حماية حقل الصنف الأعلى.
- أزل الحقول من الأصناف الفرعية.
- قد ترغب في أخذ التغليف الداخلي للحقول في الاعتبار بالنسبة للحقل الجديد، من أجل إخفائه خلف توابع الوصول.
انظر أيضًا
- دفع الحقل لأسفل (Push Down Field).
- سحب التابع لأعلى (Pull Up Method).
- الشيفرة المكررة (Duplicate Code).