---
title: "تنزيل الحقل (Push Down Field)"
type: "refactoring-technique"
slug: "push-down-field"
url: "http://localhost:3000/ar/push-down-field.md"
category: "التعامل مع التعميم"
description: "المشكلة: هل يُستخدم الحقل في عدد قليل فقط من الفئات الفرعية؟ الحل: انقل الحقل إلى هذه الفئات الفرعية."
---
# تنزيل الحقل (Push Down Field)

> المشكلة: هل يُستخدم الحقل في عدد قليل فقط من الفئات الفرعية؟ الحل: انقل الحقل إلى هذه الفئات الفرعية.

## المشكلة

هل يُستخدم الحقل في عدد قليل فقط من الفئات الفرعية؟

## الحل

انقل الحقل إلى هذه الفئات الفرعية.

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

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

ويمكن أن يحدث هذا أيضاً بسبب استخراج (أو إزالة) جزء من وظائف التسلسلات الهرمية للفئات.

## الفوائد

* يحسن التماسك الداخلي للفئة. حيث يقع الحقل في المكان الذي يُسخدم فيه بالفعل.
* عند النقل إلى عدة فئات فرعية في نفس الوقت، يمكنك تطوير الحقول بشكل مستقل عن بعضها البعض. هذا يؤدي إلى تكرار الكود، نعم، لذا قم بتنزيل الحقول فقط عندما تنوي حقاً استخدامها بطرق مختلفة.

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

1. صرح بالحقل في جميع الفئات الفرعية اللازمة.
2. أزل الحقل من الفئة الفائقة.
## Relations

**Helps you do**

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

**Similar techniques**

- [تنزيل التابع (Push Down Method)](/ar/push-down-method.md)

**Opposite refactorings**

- [رفع الحقل (Pull Up Field)](/ar/pull-up-field.md)

**Eliminates smells**

- [الوصية المرفوضة](/ar/smells/refused-bequest.md)

