+1 امتیاز
قبل در برنامه نویسی توسط (308 امتیاز)
ویرایش شده قبل توسط

یکی از مزیت های spring DI این است که وابستگی های کلاس ها  را از بین میبرد منظور از وابستگی چیست ؟ اگر در برنامه جاوایی بخواهیم از spring استفاده نکنیم برای ساخت ابجکت از کلمه کلیدی new استفاده می کنیم .spring هم در نهایت از ابجکتی که از یک کلاس در اختیار دارد داخل کلاس های دیگر استفاده می کند.عدم وبستگی کلاس ها را متوجه نمیشم. spring  برای ساخت ابجکت از چه مکانیزمی استفاده میکند؟ آیا از reflection  استفاده می کند؟

2 پاسخ

+2 امتیاز
قبل توسط (80 امتیاز)
ویرایش شده قبل توسط

منظور از وابستگی اشیائی است که در کد برنامه به آنها ارجاع شده است.

مزیت اصلی DI به نظر من کاهش Coupling بین اشیا است. و همچنین به صورت کلی امکان تغییر Context. چون وقتی وابستگی در داخل برنامه ایجاد می شود. به نوعی Hard Code محصوب می شود حتی با وجود استفاده از Interface ها. ولی وقتی درآبجکت های وابسته به داخل آبجت اصلی تزریق میشوند امکان تغییر این آبجکت ها (و به طور کلی تغییر Context مثلا در حالت تست) وجود دارد که این باعث مزیت های دیگری می شود. مانند:

 تست راحتتر: وقتی ,اشیا وابستگی به داخل شی تزریق شود امکان استفاده از اشیا ساختگی (Mock objects) به جای آنها وجود دارد.

کد خواناتر:

کد با قابلیت استفاده مجدد بیشتر. و ...

قبل توسط (308 امتیاز)
ممنون از پاسخ شما
منظور از context چیست میشه واضح تر توضیح بدین تغییر ابجکت یعنی به طور مثال اگر یک متد دارای پارامتری از نوع interface باشد ما می توانیم پیاده ساز هایی مختلفی از این نوع interface را به متد پاس دهیم؟؟
قبل توسط (80 امتیاز)
دقیقا همینه. می تونه پیاده سازی یک شی صرفا جهت تست باشه که اصطلاحا میگیم Context تغییر کرده یعنی محیط در حالت تسته. به این آبجکت ها Mock گفته میشه.
+2 امتیاز
قبل توسط (90 امتیاز)
ویرایش شده قبل توسط

یکی از مزیت های استفاده از Spring Di  نحوه ساختن و مدیریت فعالیت های bean ها است.
معمولا شما در Spring به صورت مداوم در حال ساختن یک شی نیستید بلکه یک کپی از شی ساخته شده در اختیار دارید.
bean ها scop های مختلف دارند مانند singleton که یک شی برای همه درخواست های شما ساخته میشه
این دست ویژگی ها باعث بهبود در عملکرد برنامه میشن.

سوالات مشابه

0 امتیاز
1 پاسخ 1.3هزار بازدید
+1 امتیاز
1 پاسخ 800 بازدید
0 امتیاز
1 پاسخ 1.5هزار بازدید
0 امتیاز
1 پاسخ 415 بازدید
0 امتیاز
1 پاسخ 1.5هزار بازدید
+3 امتیاز
1 پاسخ 4.3هزار بازدید
...