• بررسی مفهوم ، انواع و چگونگی پیاده سازی Dependency Injection در زبان برنامه نویسی C#- قسمت دوم
بررسی مفهوم ، انواع و چگونگی پیاده سازی Dependency Injection در زبان برنامه نویسی C#- قسمت دوم
1395/09/11 - 10:03:50 // DataBase and Design Pattern // 0 نظر // 3495 بازدید

در قسمت قبلی ضمن بررسی مفهوم DPI نوع اول اشاره شده یعنی پیاده سازی DPI در متد سازنده، مورد بررسی قرار گرفت. در ادامه، به بررسی دو انتخاب دیگر خواهیم پرداخت و بحث را به پایان خواهیم رسانید.

بسمه تعالی

بررسی مفهوم ، انواع و چگونگی پیاده سازی Dependency Injection در زبان برنامه نویسی C#- قسمت دوم

در قسمت قبلی ضمن بررسی مفهوم DPI نوع اول اشاره شده یعنی پیاده سازی DPI در متد سازنده، مورد بررسی قرار گرفت. در ادامه، به بررسی دو انتخاب دیگر خواهیم پرداخت و بحث را به پایان خواهیم رسانید.

بررسی Setter Injection

این روش نیازی به اجبار نمودن برنامه نویس به داشتن متد سازنده نخواهد داشت و مقادیر مورد نیاز توسط Public Property ها به سطح Object ارسال خواهند گردید.

این روش در عمل به ما اجازه میدهد در آخرین لحظاتی که به یک مقدار نیاز داریم و درست در زمانی که به آن نیاز داریم آنرا به سطح Object ارسال و از آن استفاه نماییم.

در دو جا میتوان استفاده از Setter Injection را بر روش ایجاد متد سازنده برتری داد.

1-1- دقیقا ندادیم در هر وضعیت Dependency مبتنی بر کدام مقدار است که در این حالت متد سازنده به دلیل اجبار به مقدار دهی، مشکل ساز خواهد بود.

2-2- در مواردی که Trace و مشکل یابی به دلیل در اختیار نبودن زمان اجرای متد سازنده مشکل شده باشد.

به مثال زیر دقت کنید.

  1. public class TestClass  
  2. {  
  3.     //Implement common property and method.  
  4. }  
  5. public class FirstObject : TestClass  
  6. {  
  7.     public string GetData()  
  8.     {  
  9.         using (var helper = new BankHelper())  
  10.         {  
  11.             helper.clsTest = this;  
  12.             return helper.GetName();  
  13.         }  
  14.     }  
  15. }  
  16. public class BankHelper : IDisposable  
  17. {  
  18.     public TestClass clsTest { getset; }  
  19.     public BankHelper() { }  
  20.     public string GetName()  
  21.     {  
  22.         return "Test";  
  23.     }  
  24. public void Dispose()  
  25. {// Dispose your object that out of scoped  
  26. }  
 

Interface Based Injection

این روش در اصل ترکیبی از هر 2 روش مبتنی بر Dependency و Setter خواهد بود. این روش مبتنی بر پیاده سازی یک Interface و دیگر کلاسها می بایست از طریق پیاده سازی این اینترفیس اقدام به تامین مقادیر نمایند.

 
علی کلاهدوزان
معرفی نویسنده : علی کلاهدوزان

سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .

امتیاز به مطلب
           
برچسب ها
DPI,Dependency Injection 
نظرات کاربران
ارسال نظر