تزریق وابستگی چیست؟#

به جای اینکه یک کلاس خودش اشیاء و سرویس‌های مورد نیازش را با کلمه کلیدی new بسازد، این اشیاء از طریق سازنده (Constructor) یا متدها از بیرون به آن تزریق می‌شوند. این کار اتصال مستقیم کدها را کاهش می‌دهد.

یک تشبیه روزمره#

تصور کنید برای رانندگی با اتومبیل، مجبور بودید خودتان موتور ماشین را بسازید! در تزریق وابستگی، موتور آماده از کارخانه تحویل اتومبیل داده می‌شود و راننده فقط گاز می‌دهد.

مزایای اصلی#

  • جداسازی ماژول‌ها (Decoupling) و نگهداری آسان‌تر
  • امکان نوشتن تست‌های واحد با Mock کردن اشیاء
  • انعطاف‌پذیری فوق‌العاده در تعویض سرویس‌ها