آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چرا باید از dagger 2 استفاده بشه ؟

Satoshi Nakamoto  8 سال پیش  8 سال پیش
0 0

سلام . من چند روزه قصد دارم از  کتابخانه  dagger 2  استفاده کنم برای پروژم دلیل اینکه میخام استفاده کنم این هست که در بسیاری از مباحث پیشرفته آموزشش رو دیدم ولی اصلا درک نمیکنم چرا باید از این کتابخانه استفاده بشه ؟

دقیقا چی رو حل میکنه چه مشکل رو رفع میکنه چه قابلیتی به ما میده ؟

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
k112  8 سال پیش
+1 0

سلام

شما فرض کنید کلاسی دارید که از کلاس دیگر در اون کلاس استفاده میکنید مثل

class MyClassA {
MyClassA() {}
public void show() {}
}

class MyClassB {
MyClassB() {
MyClassA a = new MyClassA();
a.show();
}
}

اگر مثال بالا رو ببینید از کلاس A تو کلاس B استفاده شده است. در این حالت شما وابستگی شدید به کلاس A دارید! مثال دیگر

 
class MyClassA {
MyClassA() {}
public void show() {}
}

class MyClassB {
MyClassB(MyClassA a) {
a.show();
}
}

در این مثال کلاس A از بیرون به کلاس B تزریق شده است. (در زمان نمونه سازی ابجکتی از کلاس B). که باز هم وابستگی وجود داره. (مجبورید حتما شی از نوع A رو به کانستراکتور B بفرستید)

Dagger2 این مشکل رو حل میکنه به یکبار شی رو بهش معرفی میکنید و هرجا نیاز باشه به کلاس مورد نظر داگر ان را تزریق میکنه.

برای اطلاعات بیشتر Dependency Injection رو سرچ کنید.

0 0
سلام Dependency Injection رو میدونم چیه منتهی چیزی که نمیفهمم این هست که من وقتی چه ایرادی داره وابسته بودن کلاس ها به هم ؟ و اینکه من در کل یه اپلیکیشن شاید نیاز باشه دو سه بار کلاس ها رو به هم وابسته کنم و خب نهایت کدش چند خط اضافه تره ولی با dagger 2 باید چندین فایل درست کنم و عملیات پیچیده ای انجام بشه که این اصلا معقول نیست . چرا باید به خواطر پاس دادن یکی دو بار مثلا context به یه متد . وقتی میتونم توی کد استاندارد این کار رو انجام بدم در عوض بیام عملیات پیچیده با dagger و چند فایل کلاس و اینترفیس بسازم برای این کار و نهایت حجم اپلیکیشن رو اضافه کنم و وابسته کنم به یه کتابخانه خارجی ؟ (8 سال پیش)
+2 0
خب شما که بلدی باید بدونی که وابستگی که زیاد میشه حافظه هیپ زیاد مصرف میشه و بعدش شما بخوایی تغییر در کلاس بدی مجبوری در همه کلاس ها اینکار رو بکنید. در واقع اگر اپلیکیشن شما کوچک هست نیاز به استفاده از دگر و امثالهم نیست موفق باشید (8 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .