---
title: "تضمين الفئة"
type: "refactoring-technique"
slug: "inline-class"
url: "http://localhost:3000/ar/inline-class.md"
category: "نقل الميزات بين الكائنات"
description: "المشكلة: الفئة لا تفعل شيئاً تقريباً وليست مسؤولة عن أي شيء، ولا توجد مسؤوليات إضافية مخططة لها. الحل: انقل جميع الميزات من الفئة إلى فئة أخرى."
---
# تضمين الفئة

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

## المشكلة

الفئة لا تفعل شيئاً تقريباً وليست مسؤولة عن أي شيء، ولا توجد مسؤوليات إضافية مخططة لها.

## الحل

انقل جميع الميزات من الفئة إلى فئة أخرى.

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

* غالباً ما تكون هذه التقنية مطلوبة بعد "زرع" ميزات فئة واحدة في فئات أخرى، مما يترك تلك الفئة بلا عمل تفعله تقريباً.

## الفوائد

* يؤدي التخلص من الفئات غير الضرورية إلى تحرير ذاكرة التشغيل على الكمبيوتر—ومساحة التفكير في رأسك.

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

1. في الفئة المستقبلة (recipient class)، أنشئ الحقول والدوال العامة الموجودة في الفئة المانحة (donor class). يجب أن تشير الدوال إلى الدوال المعادلة في الفئة المانحة.
2. استبدل جميع المراجع إلى الفئة المانحة بمراجع إلى الحقول والدوال في الفئة المستقبلة.
3. الآن اختبر البرنامج وتأكد من عدم إضافة أي أخطاء. إذا أظهرت الاختبارات أن كل شيء يعمل على ما يرام، فابدأ في استخدام [نقل الدالة](/move-method) و [نقل الحقل](/move-field) لزرع جميع الوظائف بالكامل إلى الفئة المستقبلة من الفئة الأصلية. استمر في القيام بذلك حتى تصبح الفئة الأصلية فارغة تماماً.
4. احذف الفئة الأصلية.
## Relations

**Opposite refactorings**

- [استخراج الفئة](/ar/extract-class.md)

**Eliminates smells**

- [الجراحة بالخردق (Shotgun Surgery)](/ar/smells/shotgun-surgery.md)
- [الفئة الكسولة](/ar/smells/lazy-class.md)
- [العمومية التخمينية](/ar/smells/speculative-generality.md)

