شعار ConstructiCat
CodeBust.
تصفح القسم ▾

رفع الحقل (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 {}

##لماذا نعيد الهيكلة

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

##الفوائد

  • يزيل تكرار الحقول في الفئات الفرعية.

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

##كيفية إعادة الهيكلة

  1. تأكد من أن الحقول تُستخدم لنفس الأغراض في الفئات الفرعية.

  2. إذا كانت الحقول بأسماء مختلفة، فأعطها نفس الاسم واستبدل جميع الإشارات إلى الحقول في الكود الحالي.

  3. أنشئ حقلاً بنفس الاسم في الفئة الفائقة. لاحظ أنه إذا كانت الحقول خاصة (Private)، فيجب أن يكون حقل الفئة الفائقة محمياً (Protected).

  4. أزل الحقول من الفئات الفرعية.

  5. قد ترغب في النظر في استخدام التغليف الذاتي للحقل (Self Encapsulate Field) للحقل الجديد، من أجل إخفائه خلف توابع الوصول.