توضیحات تکمیلی:
سؤال : آیا refactoring صورت گرفته در مطلب فوق از نوع تزریق وابستگیها (dependency injection) بود؟
پاسخ: خیر.
پیاده سازی الگوی تزریق وابستگیها زمانی معنا پیدا میکند که شما حداقل 2 کلاس داشته باشید (مطلب فوق با یک کلاس شروع شد)، همچنین این دو کلاس ارجاعی به یکدیگر داشته باشند و اصطلاحا به هم گره خورده باشند.
سؤال : چگونه در یک پروژه بزرگ میتوان نیاز به پیاده سازی الگوی تزریق وابستگیها را تشخیص داد؟
پاسخ:
آیا نسخهی ultimate ویژوال استودیوی 2010 بر روی سیستم شما نصب است؟
اگر بله: (نصب است)
برای نمونه به مطلب Discovering Circular References مراجعه کنید.
اگر خیر: (نصب نیست)
در این حالت از ابزار رایگانی به نام .NET Architecture Checker میتوانید استفاده کنید. همان نمودارهای نسخهی ultimate ویژوال استودیو را برای شما ترسیم خواهد کرد.
سؤال : آیا میتوان از کتابخانههای تزریق وابستگیها و فریم ورکهای مرتبط، جهت مدیریت سادهتر قسمت آخر مطلب فوق یعنی تامین پیاده سازیهای اینترفیسهایی که قرار است در زمان اجرا استفاده شوند، کمک گرفت؟
پاسخ: بله.
این مورد یکی از کاربردهای متداول این ابزارها است (برای مثال ساخت برنامههای افزونه پذیر و همچنین سادهتر کردن Object composition و وهله سازیهای مرتبط) و ... این مورد را نباید با اصل refactoring صورت گرفته در مثال جاری اشتباه گرفت.
سؤال : آیا refactoring صورت گرفته در مطلب فوق از نوع تزریق وابستگیها (dependency injection) بود؟
پاسخ: خیر.
پیاده سازی الگوی تزریق وابستگیها زمانی معنا پیدا میکند که شما حداقل 2 کلاس داشته باشید (مطلب فوق با یک کلاس شروع شد)، همچنین این دو کلاس ارجاعی به یکدیگر داشته باشند و اصطلاحا به هم گره خورده باشند.
سؤال : چگونه در یک پروژه بزرگ میتوان نیاز به پیاده سازی الگوی تزریق وابستگیها را تشخیص داد؟
پاسخ:
آیا نسخهی ultimate ویژوال استودیوی 2010 بر روی سیستم شما نصب است؟
اگر بله: (نصب است)
برای نمونه به مطلب Discovering Circular References مراجعه کنید.
اگر خیر: (نصب نیست)
در این حالت از ابزار رایگانی به نام .NET Architecture Checker میتوانید استفاده کنید. همان نمودارهای نسخهی ultimate ویژوال استودیو را برای شما ترسیم خواهد کرد.
سؤال : آیا میتوان از کتابخانههای تزریق وابستگیها و فریم ورکهای مرتبط، جهت مدیریت سادهتر قسمت آخر مطلب فوق یعنی تامین پیاده سازیهای اینترفیسهایی که قرار است در زمان اجرا استفاده شوند، کمک گرفت؟
پاسخ: بله.
این مورد یکی از کاربردهای متداول این ابزارها است (برای مثال ساخت برنامههای افزونه پذیر و همچنین سادهتر کردن Object composition و وهله سازیهای مرتبط) و ... این مورد را نباید با اصل refactoring صورت گرفته در مثال جاری اشتباه گرفت.