رفع الحقل (Pull Up Field).
المشكلة
فئتان تحتويان على نفس الحقل.
الحل
أزل الحقل من الفئات الفرعية وانقله إلى الفئة الفائقة.
##مثال
قبل
class Employee {}
class Salesman extends Employee {
String name;
}
class Engineer extends Employee {
String name;
}بعد
class Employee {
String name;
}
class Salesman extends Employee {}
class Engineer extends Employee {}##لماذا نعيد الهيكلة
نمت الفئات الفرعية وتطورت بشكل منفصل، مما أدى إلى ظهور حقول وتوابع متطابقة (أو شبه متطابقة).
##الفوائد
-
يزيل تكرار الحقول في الفئات الفرعية.
-
يسهل النقل اللاحق للتوابع المكررة، إن وجدت، من الفئات الفرعية إلى الفئة الفائقة.
##كيفية إعادة الهيكلة
-
تأكد من أن الحقول تُستخدم لنفس الأغراض في الفئات الفرعية.
-
إذا كانت الحقول بأسماء مختلفة، فأعطها نفس الاسم واستبدل جميع الإشارات إلى الحقول في الكود الحالي.
-
أنشئ حقلاً بنفس الاسم في الفئة الفائقة. لاحظ أنه إذا كانت الحقول خاصة (Private)، فيجب أن يكون حقل الفئة الفائقة محمياً (Protected).
-
أزل الحقول من الفئات الفرعية.
-
قد ترغب في النظر في استخدام التغليف الذاتي للحقل (Self Encapsulate Field) للحقل الجديد، من أجل إخفائه خلف توابع الوصول.