ما هو Inversion of Control
عكس التحكم في البنية
عكس التحكم (IoC) هو مبدأ تصميم يتم فيه نقل التحكم في تدفق البرنامج من كود التطبيق إلى إطار عمل أو حاوية خارجية.
أنماط IoC الرئيسية
- حقن التبعيات (DI) — حقن التبعيات من خلال المُنشئ أو الـ setter أو الواجهة
- محدد الخدمة — سجل خدمات مركزي
- نمط المصنع — إنشاء الكائنات من خلال المصانع
- طريقة القالب — تحديد هيكل الخوارزمية في الفئة الأساسية
فوائد IoC
- اقتران ضعيف بين المكونات
- اختبار مبسط من خلال المحاكاة
- تكوين مرن للتبعيات
- إعادة استخدام الكود
حاويات IoC الشائعة
- Spring (Java) — أشهر حاوية IoC
- ASP.NET Core DI — DI مدمج في .NET
- InversifyJS — IoC لـ TypeScript/JavaScript
- Autofac, Ninject — بدائل لـ .NET