شماره تماس 09336863931 | 09178169907 پست الکترونیک provid.ir@gmail.com

آموزش اصل Inversion of Control در برنامه نویسی #10

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

بیاید از الگوی طراحی Factory برای پیاده ‌سازی اصل Inversion of Control استفاده کنیم. این موضوع اتفاقی است که در تصویر بالا نیز نشان داده شده است. این اولین قدم ما در رسیدن به کلاس‌ های Loosely Coupled می باشد. برای انجام این کار ابتدا یک کلاس ساده با نام DataAccessFactory را ایجاد می کنیم. همانطور که در تصویر زیر می بینید در درون این کلاس متد GetDataAccessObj یک شی از کلاس DataAccess را بر میگرداند.

public class DataAccessFactory
{
    public static DataAccess GetDataAccessObj() 
    {
        return new DataAccess();
    }
}

سپس در درون کلاس CustomerBusinessLogic از این کلاس استفاده کرده و توسط آن یک شی از کلاس DataAccess را به دست می آوریم. کدی که در ادامه می بینید این موضوع را نشان می دهد.

public class CustomerBusinessLogic
{

    public CustomerBusinessLogic()
    {
    }

    public string GetCustomerName(int id)
    {
        DataAccess _dataAccess =  DataAccessFactory.GetDataAccessObj();

        return _dataAccess.GetCustomerName(id);
    }
}

همانطور که در کد بالا مشهود است کلاس CustomerBusinessLogic از متد GetDataAccessObj از کلاس DataAccessFactory برای ساختن یک شی جدید از کلاس DataAccess استفاده می شود. این روش را مقایسه کنید با روش قبلی که از کلید واژه new برای ساخت یک شی از کلاس DataAccess در درون کلاس CustomerBusinessLogic استفاده می شد. به طور خلاصه ما مسئولیت ساختن و کنترل کردن یک شی جدید از کلاس DataAccess که Dependency کلاس CustomerBusinessLogic است را از آن گرفته و به کلاس DataAccessFactory تحویل داده ایم.

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

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

این روش ساده ترین پیاده سازی اصل Inversion of Control و اولین قدم ما در رسیدن به یک طراحی کاملا Loose Coupled است. اما همانطور که در قسمت های قبلی این آموزش ذکر شد صرفا با استفاده از اصل Inversion of Control نمی توان به یک طراحی کاملا Loose Couples رسید. در کنار اصل Inversion of Control ما نیاز به استفاده کردن از اصل Dependency Inversion الگوی طراحی Strategy و Dependency Injection داریم.

نظر بدهید

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

CLOSE
CLOSE