فوت و فن‌های شیء-گرایی: استفاده از Starter در اندروید

می‌خوام این نوشته رو ساده و کوتاه بنویسم که راحت‌تر اون رو بخونید. چون کاربرد زیادی داره و تقریبا تو هر پروژه ای استفاده میشه.

تقریبا از روز اولی که شروع کردم به توسعه برای اندروید تا همین چند وقت پیش، برای شروع یک اکتیویتی از کد زیر استفاده می‌کردم:

شروع یک اکتیویتی
شروع یک اکتیویتی

تو نگاه اول شناختینش نه؟ تقریبا همه ما برنامه‌نویس‌های اندروید از این کد برای شروع یک اکتیویتی استفاده می‌کنیم. اما این کد مشکلاتی به همراه داره.

  • اول اینکه هر جا احتیاج داشتم یک اکتیویتی رو شروع کنم باید کد بالا رو کپی می‌کردم و اکتیویتی هدف رو تغییر می‌دادم و داده‌هایی که قرار بود ارسال بشه رو دوباره ست می‌کردم.
  • بعدش مجبور بودم تو اکتیویتی هدف، همه داده‌هایی که قرار بود دریافت کنم رو تعریف می‌کردم. تقریبا مثل تصویر زیر:

خوب اینجا شاید بگید که این چیزی نیست و خیلی هم راحت میشه ازش استفاده کرد و چرا ...شعر میگی.
اما باور کنید تو پروژهای بزرگ اگه از این روش استفاده کنید خیلی رو اعصاب‌تونه. چندتا از مشکلاتی که ممکنه براتون پیش بیاد:

  • ممکنه بعدا برای یک اکتیویتی داده های بیشتری ارسال کنید.
  • اینکه فراموش کنید داده ها رو به اکتیویتی ارجاع بدید.
  • ممکنه لازم بشه تو خیلی از جاها یک اکتیویتی رو اجرا کنید.
  • ممکنه اصلا یادتون بره داده های جدید رو جایگزین داده های قبلی کنید.

تابع Starter

برای جلوگیری از مشکلات بالا، خیلی بهتر هست اگر از یک تابع استاتیک در اکتیویتی هدف استفاده کنید:

Starter
Starter

حتی خود اندروید استدیو هم یک تابع داخلی برای این کار داره:

تابع استارتر
تابع استارتر

استفاده از این روش تو پروژه‌هام خیلی به من کمک کرده و کدهام قابل فهم‌تر شدن. امیدوارم که به شما هم کمک بکنه.

منبع