یکی از مزیت های spring DI این است که وابستگی های کلاس ها را از بین میبرد منظور از وابستگی چیست ؟ اگر در برنامه جاوایی بخواهیم از spring استفاده نکنیم برای ساخت ابجکت از کلمه کلیدی new استفاده می کنیم .spring هم در نهایت از ابجکتی که از یک کلاس در اختیار دارد داخل کلاس های دیگر استفاده می کند.عدم وبستگی کلاس ها را متوجه نمیشم. spring برای ساخت ابجکت از چه مکانیزمی استفاده میکند؟ آیا از reflection استفاده می کند؟
منظور از وابستگی اشیائی است که در کد برنامه به آنها ارجاع شده است. مزیت اصلی DI به نظر من کاهش Coupling بین اشیا است. و همچنین به صورت کلی امکان تغییر Context. چون وقتی وابستگی در داخل برنامه ایجاد می شود. به نوعی Hard Code محصوب می شود حتی با وجود استفاده از Interface ها. ولی وقتی درآبجکت های وابسته به داخل آبجت اصلی تزریق میشوند امکان تغییر این آبجکت ها (و به طور کلی تغییر Context مثلا در حالت تست) وجود دارد که این باعث مزیت های دیگری می شود. مانند: تست راحتتر: وقتی ,اشیا وابستگی به داخل شی تزریق شود امکان استفاده از اشیا ساختگی (Mock objects) به جای آنها وجود دارد. کد خواناتر: کد با قابلیت استفاده مجدد بیشتر. و ...
یکی از مزیت های استفاده از Spring Di نحوه ساختن و مدیریت فعالیت های bean ها است. معمولا شما در Spring به صورت مداوم در حال ساختن یک شی نیستید بلکه یک کپی از شی ساخته شده در اختیار دارید. bean ها scop های مختلف دارند مانند singleton که یک شی برای همه درخواست های شما ساخته میشه این دست ویژگی ها باعث بهبود در عملکرد برنامه میشن.
تبلیغات در جواب یاب
اخبار
سیستم امتیازدهی
دسترسی کاربران
داغ ترین سوال ها
پربازدیدترین سوال ها