---
title: "جعل التابع يقبل معاملات (Parameterize Method)"
type: "refactoring-technique"
slug: "parameterize-method"
url: "http://localhost:3000/ar/parameterize-method.md"
category: "تبسيط استدعاءات الدوال"
description: "المشكلة: تقوم توابع متعددة بإجراءات متشابهة تختلف فقط في قيمها الداخلية أو أرقامها أو عملياتها. الحل: اجمع هذه التوابع معاً باستخدام معامل يمرر القيمة الخاصة المطلوبة."
---
# جعل التابع يقبل معاملات (Parameterize Method)

> المشكلة: تقوم توابع متعددة بإجراءات متشابهة تختلف فقط في قيمها الداخلية أو أرقامها أو عملياتها. الحل: اجمع هذه التوابع معاً باستخدام معامل يمرر القيمة الخاصة المطلوبة.

## المشكلة

تقوم توابع متعددة بإجراءات متشابهة تختلف فقط في قيمها الداخلية أو أرقامها أو عملياتها.

## الحل

اجمع هذه التوابع معاً باستخدام معامل يمرر القيمة الخاصة المطلوبة.

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

إذا كان لديك توابع متشابهة، فمن المحتمل أن يكون لديك كود مكرر، بكل ما يترتب على ذلك من عواقب.

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

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

1. أنشئ تابعاً جديداً يقبل معاملاً وانقله إلى الكود المشترك لجميع الفئات عن طريق تطبيق [استخراج التابع (Extract Method)](/extract-method). لاحظ أنه في بعض الأحيان يكون جزء معين فقط من التوابع متطابقاً بالفعل. في هذه الحالة، تتم إعادة الهيكلة عن طريق استخراج الجزء المتطابق فقط إلى تابع جديد.
2. في كود التابع الجديد، استبدل القيمة الخاصة/المختلفة بالمعامل.
3. لكل تابع قديم، ابحث عن الأماكن التي يتم استدعاؤه فيها، واستبدل هذه الاستدعاءات باستدعاءات للتابع الجديد مع تمرير المعامل المناسب. ثم احذف التابع القديم.
## Relations

**Similar techniques**

- [استخراج الدالة](/ar/extract-method.md)
- [تكوين دالة القالب](/ar/form-template-method.md)

**Opposite refactorings**

- [استبدال المعامل بدوال صريحة](/ar/replace-parameter-with-explicit-methods.md)

**Eliminates smells**

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

