نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
AN

منهج Angular

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج Angular /ما هو حقن الاعتماديات

ما هو حقن الاعتماديات

Dependency InjectionDIInversion of ControlAngular ArchitectureProviders

جدول مرجعي سريع

1
وجه المقارنة المعماريةالإنشاء المباشر والتقليدي (Direct Instantiation)حقن الاعتماديات في أنگولر (Dependency Injection)
الارتباط والاقتران (Coupling)ارتباط قوي جداً (`Tight Coupling`) حيث يعتمد الكلاس مباشرة على تفاصيل بناء الكلاسات الأخرى، مما يصعب التعديل والاختبارارتباط مرن وضعيف (`Loose Coupling`) يعتمد على الواجهات والتجريد، مما يسهل استبدال الكلاسات واختبارها
إدارة دورة الحياة (Lifecycle Management)يتحمل المطور مسؤولية إنشاء وتدمير الكائنات يدويًا، مما قد يؤدي لتسريب الذاكرةيدير إطار العمل أنگولر دورة حياة الكائنات بذكاء وبشكل تلقائي كـ Singletons أو حسب نطاق الحقن
قابلية الاختبار (Testability)صعبة للغاية لأن التبعيات الحقيقية تكون مخفية ومثبتة داخل كود الصنفعالية جداً بفضل إمكانية حقن خدمات وهمية (`Mock Services`) بكل سهولة أثناء الاختبارات وحدات البرمجية (`Unit Tests`)

الشرح

يُعد حقن الاعتماديات (Dependency Injection - DI) هو الآلية المعمارية الأساسية لإدارة التبعيات والربط بين مكونات النظام المختلفة. بدلاً من أن يقوم المكون بإنشاء النسخ الخاصة به من الخدمات والاعتماديات يدويًا (ما يخلق ارتباطًا وثيقًا ومعقدًا)، يتولى إطار العمل (Angular Injector) مسؤولية إنشاء هذه التبعيات وتوفيرها للمكونات والخدمات عند الحاجة بناءً على سياق الشجرة المعمارية.

تفصيل فلسفة وعمل حقن الاعتماديات

مبدأ عكس السيطرة (Inversion of Control - IoC):

بدلاً من أن يتحكم الكلاس في جلب ما يحتاجه للعمل، يتم "عكس" السيطرة بحيث يقوم نظام أنگولر بتمرير وحقن هذه الاعتماديات إليه تلقائياً، مما يجعل الأكواد أكثر نظافة وقابلة للتوسع والصيانة.

سياق وحافظة الاعتماديات (Injector Tree):

يعتمد نظام الـ DI في أنگولر على شجرة هرمية تتوافق مع شجرة المكونات، مما يتيح لك توفير الخدمات على مستوى التطبيق بالكامل (root) أو قصرها على نطاق مكون محدد وشجرته الفرعية.

أمثلة برمجية موسعة: ملفات وتنسيق متنوع للتوضيح العملي

ملف الخدمة الأساسية (logger.service.ts)

typescript
1import { Injectable } from '@angular/core';
2
3@Injectable({
4 providedIn: 'root', // توفير الخدمة على مستوى التطبيق كـ Singleton
5})
6class LoggerService {
7 log(message: string): void {
8 console.log(`[معمارية DI - أنگولر 22.1]: ${message}`);
9 }
10}

نصائح احترافية

  • —اعتمد دائمًا على دالة inject() بدلاً من الحقن عبر الـ constructor!
  • —دالة inject() توفر مرونة أكبر بكثير في كتابة الأكواد، وتسمح بتهيئة المتغيرات والخصائص بشكل نظيف ومباشر خارج نطاق المُنشئ، كما تسهل دمج الأكواد مع الدوال الوظيفية (Functions).

الدرس السابق

دورة حياة المتجر والعمليات التلقائية باستخدام معتمدة hooks في NgRx

الدرس التالي

إنشاء واستخدام الخدمات لتقسيم منطق الأعمال

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر