mahdi
با این تکنیک کدت رو انعطاف پذیر کن 🦦
Dependency Injection (DI) یک تکنیک و یک دیزاین پترن مهم و اساسی در برنامه نویسی شی گرا (OOP) هست، و به مدیریت وابستگی بین اجزای مختلف نرم افزار کمک می کنه. این پترن یک سری مزایا و معایب به همراه داره و یک سری مشکلات رو حل میکنه.
به عنوان مثال اگر ما کدی با کوپلینگ محکم داشته باشیم، این شرایط به وجود میاد:
🔵تغییر: تغییر یک قسمت از کد میتونه باعث خرابی سیستم بشه.
🔵آزمایش: تست اجزای جدا شده سخت هست.
🔵قابلیت استفاده مجدد: کد به پیاده سازی های خاص، گره خورده و استفاده مجدد رو محدود میکنه.
اما چجوری تزریق وابستگی این مشکل رو حل میکنه؟ 🤔
- جداسازی: DI ساخت و استفاده از وابستگی ها رو جدا میکنه و باعث تقویت loose coupling میشه.
- مدیریت خارجی: یک چارچوب یا کانتینر خارجی ساخت وابستگی و چرخه حیات رو مدیریت میکنه و در صورت نیاز اون هارو تزریق میکنه.
- رابط ها: اجزا از طریق رابط ها با هم تعامل دارن و تعویض پیاده سازی ها رو آسان میکنه.
برخی از مزایا قابل توجه DI ⬇️
1. Modularization: کامپوننت ها مستقل از نمونه سازی وابستگی های خود هستن.
2. سهولت تعویض: به راحتی میشه وابستگی های واقعی رو با ماک ه، برای تست، جایگزین کرد.
3. تست پذیری: تست رو با جداسازی اجزا افزایش میده.
4. قابلیت نگهداری: اتصال محکم رو کاهش میده، استفاده مجدد رو ترویج میکنه، تعمیر و نگهداری رو آسون تر می کنه.
روش های تزریق وابستگی
🔢 Constructor Injection: وابستگی ها از Constructor عبور میکنن، و اینکار وابستگی های واضح و به خوبی تعریف شده رو مشخص میکنه.
برای این که پست زیاد طولانی نشه، ادامه محتوا رو داخل این تلگراف قرار دادیم.
پیشنهاد میکنم از دستش ندید 💀
#design_pattern
@CodeModule
9 · 959 ·