وابستگی یا Dependency چیست؟
قبل از اینکه مفهوم تزریق وابستگی را یاد بگیریم باید با خود وابستگی آشنا بشویم. در زبانهای برنامهنویسی هر کلاسی که ما ایجاد میکنیم میتواند تعدادی وابستگی داشته باشد.
این وابستگیها معمولاً کلاسهای دیگری هستند که ما از آنها برای پیشبرد هدف اصلی خود استفاده میکنیم.
بهعنوانمثال فرض کنید در برنامهای که توسعه دادهاید یک کلاس به نام SendMail دارید که وظیفه ارسال ایمیل در پروژه شما را برعهده دارد.
و یک کلاس دیگر به نام GMailService دارید که وظیفه ارسال ایمیل از طریق اکانت google را بر عهده دارد.
و ما اگر در کلاس SendMail از کلاس GMailService یک نمونه ایجاد، و از آن استفاده کرده باشیم، در واقع کلاس SendMail یک وابستگی به نام GMailService دارد و بدون آن وابستگی نمیتواند کار خود را بهدرستی انجام دهد.
به طور خلاصه اگر در کلاسهایی که ایجاد میکنید، نمونه یا instanceهایی از کلاسهای دیگر در کلاس خود ایجاد میکنید این نمونهها هرکدام یک وابستگی محسوب میشوند.
تزریق وابستگی (Dependency Injection) چیست؟
اگر در یک کلاس، بهصورت مستقیم در کد خودتان یک نمونه (Instance) از کلاس دیگری ایجاد میکنید در واقع خود شما وابستگی کلاس را تأمین کردهاید.
در مثال بالا اگر بهصورت مستقیم یک نمونه از کلاس GmailService در کلاس SendMail ایجاد کنیم، خود ما وابستگی کلاس را ایجاد کردهایم که این روش در کدنویسی حرفهای مرسوم نیست و ما باید بهجای این کار از تزریق وابستگی استفاده نماییم.
اما تزریق وابستگی یعنی چه؟ اگر بخواهیم تزریق وابستگی را به زبان ساده تعریف کنیم باید بگوییم طی فرایندی یک بخش را برای تأمین وابستگیهای کلاسها ایجاد میکنیم، و این بخش وابستگیهای هر کلاس را ایجاد و به آن کلاس ارسال میکند.
پس تعریف تزریق وابستگی یعنی وابستگیهای یک کلاس را از منبعی دیگر دریافت کنیم.
چرا تزریق وابستگیها را انجام میدهیم؟
هرچه برنامه بزرگتر میشود نگهداری آن هم سختتر میشود و در برنامههای بزرگ برای این که نگهداری را سادهتر کنیم و احتمال خطا را پایین بیاوریم باید از یکسری اصول و دیزاین پترنها استفاده کنیم که برنامه ما به استانداردهای یک برنامه بزرگ نزدیکتر شود و برای نگهداری و توسعه با مشکلات کمتری روبرو شویم.
بهاحتمال زیاد اصول Solid را شنیدهاید. اصولSolid به ما 5 اصل را معرفی میکند که ما با رعایت کردن این اصول میتوانیم کدنویسی بهتری انجام دهیم.
اصل D یا همان Dependency Inversion Principle تأکید دارد که وارونگی وابستگیها را انجام دهیم و این یعنی اینکه ماژولهای سطح بالا بهجای وابستگی به پیادهسازیها باید به انتزاع وابسته باشند.
البته اصل D راه حلی برای پیادهسازی آن ارائه نمیکند. حالا چطور در پروژه خود اصل D را اعمال کنیم؟ تزریق وابستگی یک روش یا راهحل برای پیادهسازی اصل D یا همان وارونهسازی وابستگیها است. البته شاید هنوز این تعریف را بهخوبی درک نکنید. اما جای هیچ نگرانی نیست در طول دوره با مثالهای متعدد شما را کامل با این مفهوم و موضوع آشنا میکنیم.
در دوره تزریق وابستگی در asp.net core چه چیزی یاد میگیریم؟
- در این دوره ابتدا اصل D از اصول Solid را بررسی میکنیم و سپس به آموزش تزریق وابستگی که یک روش برای اعمال اصل Dependency Inversion Principle در پروژههای برنامهنویسی است میپردازیم.
- سپس بررسی میکنیم که استفاده از تزریق وابستگی چه دست آوردهایی برای تیم فنی دارد؟ درواقع با استفاده از تزریق وابستگی چه مزایایی به دست میآوریم؟ با بررسی این موارد مطمئناً شما ترغیب میشوید در همه پروژههای خود از تزریق وابستگیها استفاده نمایید.
- یک نمونه تزریق وابستگی در سی شارپ به زبان ساده را پیادهسازی میکنیم و شما بعد از دیدن این قسمت بهصورت کامل مفهوم تزریق وابستگی را درک میکنید.
- در ادامه تزریق وابستگی در دات نت را به شما آموزش میدهیم.
- انواع تزریق وابستگی در Asp.Net Core را یاد خواهید گرفت.
- مثال تزریق وابستگی متنوعی در سی شارپ را پیادهسازی میکنیم.
- طول عمر اشیا را بررسی میکنیم.
و کلی موارد دیگر مربوط به بحث تزریق وابستگی
بعدازاین دوره شما کامل با تزریق وابستگیها در سی شارپ و asp.net core و همه موارد مربوط به آن آشنا میشوید و متوجه میشوید که کجا؟ و چرا؟ باید از تزریق وابستگی استفاده کنید.
پس همین الان با شرکت در این دوره یکبار برای همیشه تزریق وابستگی ها را یاد بگیر و مثل حرفهایها کدنویسی انجام بده.