سریع شروع سیمفونی DI (تزریق وابستگی) خودآموز
تزریق وابستگی (DI) چیست ؟
تزریق وابستگی یک تکنیک است که اجازه می دهد تا برای آزادانه همراه اشیاء در درون یک برنامه نرم افزاری است. به طور کلی اگر یک شی ، نیاز به دسترسی به قابلیت های دیگر این امر می تواند نمونه داخلی که منجر به سیستم های محکم همراه. با پیاده سازی تزریق وابستگی به اشیاء مورد نیاز برای استفاده آماده (-- IOC گاهی هم به کنترل معکوس به آن اشاره شده) را تزریق کند. مثال زیر :
<؟ پی اچ پی کلاس DecisionMaker { makeDecision تابع عمومی (آرایه $ پارامترهای) { / / آیا نیازمند آداپتور پایگاه داده $ DP = جدید DecisionParameters () ؛ دلار parameterScore = $ DP -> getScore (پارامترها) ؛ / *... از منطق تصمیم... * / بازگشت ($ parameterScore> 50) ؛ } }
این قطعه از کد ، گفت که باید محکم به شی DecisionParameters همراه است. بازنویسی فوق در مد آزادانه همراه ما می خواهم چیزی را دوست داشته باشند و....
<؟ پی اچ پی کلاس DecisionMaker { خصوصی دلار _dp ؛ عمومی تابع __construct ($ DP) { این _dp = $ DP ؛ } makeDecision تابع عمومی (آرایه $ پارامترهای) { دلار parameterScore = $ -> _dp -> getScore (پارامترها) ؛ / *... از منطق تصمیم... * / بازگشت ($ parameterScore> 50) ؛ } }
در حالیکه به دست آوردن منافع از کد آزادانه همراه ما در حال اضافه کردن پیچیدگی چنین است که هر زمان یک شی نمونه ما نیز باید به این نمونه از وابستگیهای آن بسته و تصویب این بیش از حد. به عنوان مثال ، این است :
$ = جدید انتخاب DecisionMaker () ؛ اکو $ انتخاب -> makeDecision (آرایه ('تلاش' => 'پایین' ، 'بازگشت' => 'بالا')) ؛
در حال حاضر می شود :
$ DP = جدید DecisionParameters () ؛ دلار انتخاب = جدید DecisionMaker (DP) ؛ اکو $ انتخاب -> makeDecision (آرایه ('تلاش' => 'پایین' ، 'بازگشت' => 'بالا')) ؛
این وضعیت دردناک تر می شود به عنوان تعدادی از وابستگی برای یک کلاس افزایش می یابد ، و چه می شود اگر وابستگیهای خود وابستگیها؟ این کاملا می تواند به سرعت تبدیل به کابوس دولت شی! را وارد کنید وابستگی به تزریق ظروف (چارچوب)...
ادامه خواندن "سیمفونی سریع شروع DI (تزریق وابستگی) خودآموز' »
















































