ConstructiCat Logo
CodeBust.
Browse section ▾

استخراج الفئة العليا.

Problem

لديك فئتان تحتويان على حقول ودوال مشتركة.

Solution

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

##Example

قبل
Extract Superclass - Before
بعد
Extract Superclass - After

##Why Refactor

يحدث أحد أنواع تكرار الكود عندما تؤدي فئتان مهام متشابهة بنفس الطريقة، أو تؤديان مهام متشابهة بطرق مختلفة. توفر الكائنات آلية مدمجة لتبسيط مثل هذه المواقف عبر الوراثة (inheritance). ولكن في كثير من الأحيان يظل هذا التشابه دون أن يلاحظه أحد حتى يتم إنشاء الفئات، مما يتطلب إنشاء هيكل وراثة لاحقاً.

##Benefits

  • إلغاء تكرار الكود. الحقول والدوال المشتركة الآن “تعيش” في مكان واحد فقط.

##How to Refactor

  1. أنشئ فئة عليا مجردة (abstract superclass).

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

  3. ابحث عن الأماكن في كود العميل حيث يمكن استبدال استخدام الفئات الفرعية بفئتك الجديدة (مثل تعريفات الأنواع).