---
title: "إزالة المعامل (Remove Parameter)"
type: "refactoring-technique"
slug: "remove-parameter"
url: "http://localhost:3000/ar/remove-parameter.md"
category: "تبسيط استدعاءات الدوال"
description: "المشكلة: لا يُستخدم المعامل داخل متن التابع. الحل: أزل المعامل غير المستخدم."
---
# إزالة المعامل (Remove Parameter)

> المشكلة: لا يُستخدم المعامل داخل متن التابع. الحل: أزل المعامل غير المستخدم.

## المشكلة

لا يُستخدم المعامل داخل متن التابع.

## الحل

أزل المعامل غير المستخدم.

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

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

وفي كل الأحوال، تمثل المعاملات الإضافية كوداً إضافياً يجب تشغيله.

في بعض الأحيان نضيف معاملات بنظرة مستقبلية، متوقعين تغييرات في التابع قد نحتاج المعامل لأجلها. ومع ذلك، تظهر التجربة أنه من الأفضل إضافة معامل فقط عندما تكون هناك حاجة حقيقية إليه. ففي نهاية المطاف، غالباً ما تظل التغييرات المتوقعة مجرد توقعات لا تتحقق.

## الفوائد

* يحتوي التابع فقط على المعاملات التي يحتاجها حقاً.

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

1. تحقق مما إذا كان التابع معرفاً في الفئة الفائقة (Superclass) أو الفئة الفرعية (Subclass). إذا كان الأمر كذلك، فهل يُستعمل المعامل هناك؟ إذا كان المعامل مستخدماً في أحد هذه التطبيقات، فتجنب استخدام تقنية إعادة الهيكلة هذه حالياً.
2. الخطوة التالية مهمة للحفاظ على عمل البرنامج أثناء عملية إعادة الهيكلة. أنشئ تابعاً جديداً عن طريق نسخ التابع القديم واحذف المعامل ذي الصلة منه. واستبدل كود التابع القديم باستدعاء للتابع الجديد.
3. ابحث عن جميع الإشارات إلى التابع القديم واستبدلها بإشارات إلى التابع الجديد.
4. احذف التابع القديم. لا تقم بهذه الخطوة إذا كان التابع القديم جزءاً من واجهة عامة (Public interface). في هذه الحالة، ضع علامة "مهمل" (Deprecated) على التابع القديم.
## Relations

**Helps you do**

- [استبدال المعامل باستدعاء دالة](/ar/replace-parameter-with-method-call.md)

**Similar techniques**

- [إعادة تسمية التابع (Rename Method)](/ar/rename-method.md)

**Opposite refactorings**

- [إضافة معامل](/ar/add-parameter.md)

**Eliminates smells**

- [العمومية التخمينية](/ar/smells/speculative-generality.md)

