---
title: "استخراج الفئة العليا"
type: "refactoring-technique"
slug: "extract-superclass"
url: "http://localhost:3000/ar/extract-superclass.md"
category: "التعامل مع التعميم"
description: "المشكلة: لديك فئتان تحتويان على حقول ودوال مشتركة. الحل: أنشئ فئة عليا (superclass) مشتركة لهما وانقل إليها جميع الحقول والدوال المتطابقة."
---
# استخراج الفئة العليا

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

## المشكلة

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

## الحل

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

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

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

## الفوائد

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

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

1. أنشئ فئة عليا مجردة (abstract superclass).
2. استخدم [رفع الحقل](/pull-up-field)، و [رفع الدالة](/pull-up-method)، و [رفع متن المنشئ](/pull-up-constructor-body) لنقل الوظائف المشتركة إلى الفئة العليا. ابدأ بالحقول، نظراً لأنه بالإضافة إلى الحقول المشتركة، ستحتاج إلى نقل الحقول المستخدمة في الدوال المشتركة.
3. ابحث عن الأماكن في كود العميل حيث يمكن استبدال استخدام الفئات الفرعية بفئتك الجديدة (مثل تعريفات الأنواع).
## Relations

**Similar techniques**

- [استخراج الواجهة](/ar/extract-interface.md)

**Eliminates smells**

- [الكود المكرر](/ar/smells/duplicate-code.md)

