تزریق وابستگی (Dependency Injection) در اندروید
قبل از اینکه به سراغ تزریق وابستگی برویم ابتدا باید اصل وارونگی وابستگی (Dependency inversion principle) را بشناسیم. حرف D در اصول برنامه نویسی شی گرا (SOLID)، اشاره بر جداسازی وابستگی ها در کد برنامه با توجه به تجرید (abstraction) بجای اجرای جزییات برنامه دارد. تزریق وابستگی مکانیزمی است که از آن برای پشتیبانی از جداسازی وابستگی ها استفاده میکنیم. بطور خاص کد برنامه وابستگی را تولید و به استفاده کننده تزریق میکند. بدین ترتیب استفاده کننده نیازی به ساخت آبجکت ندارد. در اندروید با استفاده از کتابخانه Dagger 2 میتوانیم از امکانات تزریق وابستگی استفاده کنیم. چرا از تزریق وابستگی استفاده کنیم؟ برای اینکه امکان جداسازی کلاسهای مختلف را به ما میدهد. فرض کنید کلاسی داریم با عنوان کاریر (User). متدی در این کلاس وجود دارد که سن کاربر را برمیگرداند. این متد برای محاسبه سن از کلاس تقویم (calendar) استفاده میکند. بدین ترتیب که یک آبجکت از این کلاس میسازد، آنرا مقدار دهی میکند و سپس با اطلاعات آبجکت کاربر مقایسه میکند و درانتها سن کاربر را برمیگرداند. اگرچه این روش کار میکند ولی مشکلش این است که کلاس Calendar برای کلاس User وابستگی است. بنابراین قانون فوق (SOLID) رعایت نشده است چراکه آبجکت کاربر دارد آبجکت تقویم […]