ConstructiCat Logo
CodeBust.
Browse section ▾

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

Problem

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

Solution

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

##Example

قبل
Collapse Hierarchy - Before
بعد
Collapse Hierarchy - After

##Why Refactor

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

##Benefits

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

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

##How to Refactor

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

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

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

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