---
title: "استبدال التفويض بالوراثة"
type: "refactoring-technique"
slug: "replace-delegation-with-inheritance"
url: "http://localhost:3000/ar/replace-delegation-with-inheritance.md"
category: "التعامل مع التعميم"
description: "المشكلة: تحتوي فئة ما على العديد من الدوال البسيطة التي تفوض العمل إلى جميع دوال فئة أخرى. الحل: جعل الفئة وارثة للفئة المفوضة، مما يجعل دوال التفويض غير ضرورية."
---
# استبدال التفويض بالوراثة

> المشكلة: تحتوي فئة ما على العديد من الدوال البسيطة التي تفوض العمل إلى جميع دوال فئة أخرى. الحل: جعل الفئة وارثة للفئة المفوضة، مما يجعل دوال التفويض غير ضرورية.

## المشكلة

تحتوي فئة ما على العديد من الدوال البسيطة التي تفوض العمل إلى جميع دوال فئة أخرى.

## الحل

اجعل الفئة وارثة للفئة المفوضة، مما يجعل دوال التفويض غير ضرورية.

## لماذا نقوم بإعادة الهيكلة

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

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

## الفوائد

* يقلل من طول الكود. لم تعد كل دوال التفويض هذه ضرورية.

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

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

**Similar techniques**

- [إزالة الوسيط (Remove Middle Man)](/ar/remove-middle-man.md)

**Opposite refactorings**

- [استبدال الوراثة بالتفويض](/ar/replace-inheritance-with-delegation.md)

**Eliminates smells**

- [الألفة غير اللائقة](/ar/smells/inappropriate-intimacy.md)

