- الحصول على الرابط
- X
- بريد إلكتروني
- التطبيقات الأخرى
- الحصول على الرابط
- X
- بريد إلكتروني
- التطبيقات الأخرى
اتكلمنا فى المره السابقه عن ال inversion of control واتفقنا أن فى اكتر من technique ممكن نستخدمه علشان نطبق ال IoC.
ما هو ال Dependency Injection؟
هو Design Pattern باستخدامه نقدر نحقق الـ IoC بين ال classes وال dependencies الخاصة ببها.
لما هنطبق آل DI هيبقى عندنا 3 انواع من ال Classes
1-Client Class
ال Class اللى بتستخدم ال dependencies مثل الـ HomeController
2-Service Class
ال Service Class يتم استخدامها فى Classes مختلفة مثل ال SQL Server وال MySql.
3-Injector Class
ال Class المسؤله أنها توفر object of services class لل client class.
ال injector class تقدر توفر او تعمل inject لل objects of service class عن طريق ثلاث طرق:
1-Constructor Injection
وهنا بنوفر لل Client Class الى objects بأستخدام ال Constructors الخاص بها.
2-Property Injection
وهنا بنوفر لل Client Class الى objects بأستخدام Public Property .
3-Method Injection
وهنا بنوفر لل Client Class الى objects بأستخدام Method .
انت ممكن تعمل implement لل Dependency Injection Pattern بنفسك عن طريق استخدام الطرق السابقة, بس
معظم ال Frameworks توفر implementation لـ DI وبتقدمه بمسمى الـ IoC Container.
ما هو ال IoC Container ?
عبارة عن Framework يقدم implementation لـ Dependency Injection ومن مهامه الرئيسية ال Creation وال Lifetime لل objects و injects لل dependent objects.
1-Register
وهنا كمستخدمين لـ IoC Framework هنبدأ نعرفه ونوفر ليه معلومات عن ال dependent objects اللى هيعملها inject فى ال dependent classes.
2-Resolve
وهنا اللى IoC FrameWork بيوفر ال dependent objects اللى احنا عملنا ليهم Register لأى class هتستخدمهم.
3-Disposition
ال IoC مسؤول عن ال LifeTime الخاص بال dependent object ومعظم الـ IoC بتوفر لينا طريقه كمستخدمين نحدد ال Lifetime.
مثال:
1-ASP.NET Cores built-in IoC container
2-Spring IoC container
3-Laravel IoC container
- الحصول على الرابط
- X
- بريد إلكتروني
- التطبيقات الأخرى
تعليقات
إرسال تعليق