آموزش اصل Inversion of Control در برنامه نویسی #16 قسمت شانزدهم از یک سری آموزشی از وبسایت پرووید است که در رابطه با اصل Inversion of Control تنظیم شده است. پس از این دوره ی آموزشی می توانید از بسته های آموزشی وبسایت پرووید در رابطه با Inversion of Control را استفاده کنید.

در قسمت قبلی از این آموزش در مورد در مورد الگوی طراحی Dependency Injection (تزریق وابستگی) صحبت کردیم.

الگوی طراحی Dependency Injection (تزریق وابستگی)

تزریق وابستگی یا Dependency Injection یک الگوی طراحی است که با استفاده از آن میتوانیم Inversion of Control را پیاده سازی کنیم. به عبارت دیگر می توانیم وظیفه ساختن یک شی از Dependency را در بیرون از کلاسی که به آن Dependency نیاز دارد منتقل کنیم. کلاسی که Dependency را می‌سازد می‌تواند به روش های مختلف شی ساخته شده در اختیار کلاس وابسته قرار دهد. در قالب یک جمله با استفاده از Dependency Injection ما وظیفه ساختن اشیایی که به آنها وابستگی داریم را بیرون از کلاس وابسته انجام می دهیم.

بسته ی جامع آموزش Inversion of Control و IoC Container ها

از شما دعوت می کنیم که از بسته ی جامع آموزش Inversion of Control و IoC Container ها دیدن کنید.

در الگوی طراحی Dependency Injection به طور کلی سه نوع کلاس وجود دارند:

  • کلاس Client: این کلاس در واقع کلاسی وابسته است. یا به عبارتی کلاسی است که برای انجام وظیفه ی خود به یک کلاس دیگر تحت عنوان Service نیازمند است.
  • کلاس Service: کلاس Service کلاسی است که کلاس Client’t برای انجام کار خود به آن نیازمند است. این کلاس Dependency ما است.
  • کلاس Injector: این کلاس وظیفه تزریق کردن یک شی مناسب از کلاس Service را به درون کلاس Client را دارد.

در تصویر زیر ارتباط بین این سه نوع کلاس در الگوی طراحی Dependency Injection دیده می شود.

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

در قسمت بعدی از این آموزش در مورد انواع Dependency Injection صحبت خواهیم کرد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *