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

طي التسلسل الهرمي.

المشكلة

لديك تسلسل هرمي للفئات (class hierarchy) تكون فيه الفئة الفرعية (subclass) مطابقة تقريباً للفئة العليا (superclass).

الحل

ادمج الفئة الفرعية والفئة العليا.

##مثال

قبل
class Employee {
  String name;
  double monthlyCost;
}
class Salesman extends Employee {
}
بعد
class Employee {
  String name;
  double monthlyCost;
}

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

لقد نما برنامجك بمرور الوقت وأصبحت الفئة الفرعية والفئة العليا متطابقتين تقريباً. تمت إزالة ميزة من الفئة الفرعية، وتم نقل دالة إلى الفئة العليا... والآن لديك فئتان متشابهتان تماماً.

##الفوائد

  • تقليل تعقيد البرنامج. فئات أقل تعني أشياء أقل للتركيز عليها وأجزاء متحركة أقل عرضة للكسر للقلق بشأنها أثناء تغييرات الكود المستقبلية.

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

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

  1. حدد أي الفئتين أسهل في الإزالة: الفئة العليا (superclass) أم الفئة الفرعية (subclass).

  2. استخدم طريقة رفع الحقل و رفع الدالة إذا قررت التخلص من الفئة الفرعية. إذا اخترت التخلص من الفئة العليا، فاستخدم طريقة إنزال الحقل و إنزال الدالة.

  3. استبدل جميع استخدامات الفئة التي تقوم بحذفها بالفئة التي سيتم نقل الحقول والدوال إليها. غالباً ما يكون هذا الكود مخصصاً لإنشاء الفئات، وتحديد أنواع المتغيرات والمعاملات، والتوثيق في تعليقات الكود.

  4. احذف الفئة الفارغة.