ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
همونطور که میدونید، رتروفیت طیف وسیعی از کاربردها رو ارائه میکنه و درنتیجه تنظیمات بسیار زیادی هم میتونه داشته باشه. بسیاری از برنامههای بزرگ نیازمند تنظیمات خاصی هستن (مثلاً برای اعتبارسنجی با کمک OAuth). برای دستیابی به یک پروژهی تمیز و پایدار، میخوایم ایدهی خودمون رو درقالب یک کلاینت پایدار اندروید مطرح کنیم: کلاس ServiceGenerator
پس با ما در ادامهی این تاپیک همراه باشین.
ارسالها: 3,701
موضوعها: 140
تاریخ عضویت: اردیبهشت 1394
اعتبار:
134
تشکرها: 195
3447 بار تشکر شده در 2120 پست
چرا هر چیزی رو بصورت static تعریف کردیم؟
شاید تعجب کرده باشین که چرا ما از فیلدها و متدهای استاتیک در کلاس ServiceGenerator استفاده کردیم؟ درحقیقت یک دلیل ساده برای اینکار وجود داره: ما میخوایم از اشیاء یکسان (OkHttpClient و Retrofit و...) در تمام برنامه برای بازکردن یک اتصال استفاده کنیم که تمام درخواستها و پاسخها رو شامل کشکردن (Caching) و خیلی امکانات دیگه، مدیریت کنن. استفاده از یک شئ OkHttpClient به شما اجازه میده که از اتصال بازشدهی قبلی استفاده کنید. برای اینکار، یا باید شئ OkHttpClient رو به این کلاس ازطریق Dependency Injection تزریق کنیم و یا از فیلد static کمک بگیریم. همونطور که میبینید، ما فیلد static رو انتخاب کردیم و دلیلش هم اینه که از این شئ قراره توی این کلاس استفاده کنیم. بخاطر همین تمام فیلدها و متدها رو استاتیک تعریف کردیم.
بعلاوه، با این روش میتونیم برای افزایش سرعت، کمی از حافظهی ارزشمند دستگاههای موبایل رو نگهداریم تا هردفعه مجبور نباشیم اشیاء یکسانی رو بارها و بارها بسازیم.