‫۱۱ سال و ۲ ماه قبل، دوشنبه ۲۱ مرداد ۱۳۹۲، ساعت ۱۹:۰۶
فرمودید:" پس چاره ای جز تزریق آن در زمانی که لازم است نداریم". آیا نمیتوان به جای تزریق وابستگی از الگوهایی مثل Service Locator و Factory  استفاده نمود؟
‫۱۱ سال و ۲ ماه قبل، دوشنبه ۲۱ مرداد ۱۳۹۲، ساعت ۱۸:۰۳
در قسمت‌های بعدی با مثال انجام شده. مثلا در قسمت معرفی IoC Container، در مورد نحوه معکوس سازی ارسال ایمیل به لایه سرویس با مثال بحث شده. یا در قسمت نحوه یافتن وابستگی‌ها در یک پروژه موجود، نحوه معکوس سازی دریافت اطلاعات از وب به لایه‌ای دیگر بحث شده.
‫۱۱ سال و ۲ ماه قبل، دوشنبه ۲۱ مرداد ۱۳۹۲، ساعت ۱۷:۴۵
مثلا می‌توانید دسترسی به داده‌ها رو مستقیما در کدهای یک کنترلر یا فرم قرار دهید و یا با استفاده از معکوس سازی وابستگی‌ها، این دسترسی را به یک لایه سرویس منتقل و معکوس کرده و استفاده کنید (در کنترلر یا فرم برنامه). استفاده نهایی از امکانات اینترفیس‌های لایه سرویس خواهد بود، بدون اطلاع از نحوه پیاده سازی خاص لایه سرویس برنامه. به این ترتیب علاوه بر جداسازی لایه‌های مختلف برنامه، امکان ارائه نگارش‌های مختلفی از پیاده سازی‌های اینترفیس‌ها نیز وجود خواهد داشت. در برنامه واقعی، پیاده سازی کننده‌ها، از دیتابیس واقعی استفاده می‌کنند و در مثلا در حین آزمایش واحد، از پیاده سازی خاص استفاده کننده از یک بانک اطلاعاتی ساده تشکیل شده در حافظه برای بالا رفتن سرعت آزمون‌ها.
‫۱۱ سال و ۲ ماه قبل، دوشنبه ۲۱ مرداد ۱۳۹۲، ساعت ۱۷:۱۶
- خیر. در حالت setter هم IoC Container (حین استفاده از ابزارهای متداول تزریق وابستگی‌ها) تمام وابستگی‌ها را در حین وهله سازی کلاس ایجاد می‌کند (چه استفاده شوند یا خیر؛ چون اگر اینکار را انجام ندهد استفاده کننده خطای null reference exception را حتما دریافت خواهد کرد. از این جهت که فقط در حالت استفاده از کلاس‌های Lazy است که یک محصور کننده، ارجاع واقعی به شیء را مدیریت می‌کند و به تاخیر می‌اندازد). در حالت به تاخیر افتاده، یک وابستگی فقط زمانی وهله سازی می‌شود که ارجاعی به آن در مسیر منطقی اجرای برنامه وجود داشته باشد؛ در غیراینصورت از وهله سازی آن وابستگی استفاده نشده، صرفنظر خواهد شد.
- برای آزمایش این مساله یک break point را در سازنده کلاس‌های مورد استفاده قرار دهید.
‫۱۱ سال و ۲ ماه قبل، دوشنبه ۲۱ مرداد ۱۳۹۲، ساعت ۱۶:۵۰
"حین استفاده از تزریق وابستگی‌ها، وهله سازی به تاخیر افتاده وابستگی‌ها میسر نیست "
فکر کنم منظورتان فقط هنگام تزریق وابستگی از طریق constructor است؟ چون چنانچه از روش تزریق setter استفاده کنیم این مشکل حل میشود. درست برداشت کرده ام؟
‫۱۱ سال و ۲ ماه قبل، دوشنبه ۲۱ مرداد ۱۳۹۲، ساعت ۱۶:۴۱
ممکن است مثالهای دیگری(غیر از Command line, GUI) در مورد معکوس سازی جریان کاری برنامه بیان نمایید؟