تزریق وابستگی و یا Dependency Injection یک الگوی طراحی (Design Pattern) ست که اصل Inversion of Control را پیاده سازی می کند. این الگوی طراحی باعث معکوس شدن وظیفه ساخت اشیایی میشود که یک کلاس به آنها وابسته است.
تزریق وابستگی یعنی چه؟
تزریق وابستگی و یا dependency injection که به بیان کوتاه به آن DI نیز می گویند، یک الگوی طراحی در توسعه نرم افزار است که اجازه می دهد شما بتوانید کد های loosely coupled ایجاد کنید. تزریق وابستگی یک روش بسیار عالی برای حذف کردن و یا کاهش دادن tight coupling بین اجزای تشکیل دهنده نرم افزار می باشد. با استفاده از تزریق وابستگی شما میتوانید ایجاد تغییر بر روی کد را در آینده را بهتر مدیریت کنید و پیچیدگی های موجود در نرم افزار را مدیریت کنید. یکی دیگر از رسالت های تزریق وابستگی این است که کد شما قابلیت نگهداری بیشتری پیدا کند. با استفاده از تزریق وابستگی می توانید آبجکت های خود را ساخته و یا اصطلاحاً آنها را initialize کنید و بعد dependency های مربوط به آنها را برای آنها فراهم کنید. این موضوع اصطلاحاً تزریق کردن و یا inject کردن یک dependency از بیرون از یک کلاس به درون یک کلاس نامیده می شود.
برای مثال فرض کنید که کلاس کلاینت نیاز به دو سرویس service class دارد یکی از بهترین روش هایی که می توانید در چنین شرایطی با کلاس کلاینت کار کنید این است که این کلاس از دو abstraction و یا interface استفاده کند. پس به جای اینکه این کلاس به صورت مستقیم با دو کلاس با نام های سرویس یک و یا سرویس دو کار کند از interface های آنها یعنی Iservice1 و IService2 استفاده می کند. این موضوع باعث می شود تا در آینده بتوانید بدون نیاز به هیچگونه تغییری بر روی کلاس کلاینت از پیاده سازی های مختلفی از این interface ها استفاده کنید.
همانطور که گفته شد یکی از قصدهای تزریق وابستگی این است که کد قابلیت نگهداری بیشتری را ایجاد کند. علاوه بر این تزریق وابستگی کمک می کند تا tight coupling اجزای تشکیل دهنده نرم افزار کاهش پیدا کند. با استفاده از تزریق وابستگی dependency هایی را که به صورت hard-coded شده در کلاس های خود تعریف کرده اید کنار می گذارید و در عوض آنها را در زمان runtime و یا اجرا شدن برنامه تزریق می کنید.
لینک های دانلود
- دانلود رایگان فایل ویدئویی 0. Introduction to the Course
- دانلود رایگان فایل ویدئویی 1. Dependency Injection
- دانلود رایگان فایل ویدئویی 2. Introducing a Potential Example
- دانلود رایگان فایل ویدئویی 3. Understanding Interface Injection
- دانلود رایگان فایل ویدئویی 4. Adding Interface Injection to the Example
- دانلود رایگان فایل ویدئویی 5. Understanding Setter Injection
- دانلود رایگان فایل ویدئویی 6. Adding Setter Injection to the Example
- دانلود رایگان فایل ویدئویی 7. Adding Constructor Injection to the Example
- دانلود رایگان فایل ویدئویی 8. Understanding Constructor Injection
- دانلود رایگان فایل ویدئویی 9. Inversion of Control
- دانلود رایگان فایل ویدئویی 10. Implementing a Simple IoC
- دانلود رایگان فایل ویدئویی 11. Introducing Unity IoC
- دانلود رایگان فایل ویدئویی 12. Setter Injection using Unity
- دانلود رایگان فایل ویدئویی 13. Constructor Injection using Unity
- دانلود رایگان فایل ویدئویی 14. Interface Injection using Unity
- دانلود رایگان فایل ویدئویی 15. Conclusion
- دانلود رایگان فایل پروژه Exercise Files
- پسورد تمامی فایل های سایت www.provid.ir است.
14 Comments