الگوهای Switch جایگزین

الگوهای Switch جایگزین در جاوااسکریپت

در برنامه‌نویسی، ساختار switch یکی از روش‌های متداول برای کنترل جریان برنامه بر اساس مقادیر مختلف است. اما گاهی اوقات نیاز داریم از الگوهای جایگزین استفاده کنیم که انعطاف‌پذیری بیشتری دارند یا خوانایی کد را بهبود می‌بخشند.

1. استفاده از شیء به جای Switch

یکی از تمیزترین روش‌های جایگزین، استفاده از یک شیء (Object) برای نگاشت مقادیر به توابع یا نتایج مربوطه است:

const actions = {
  'add': (a, b) => a + b,
  'subtract': (a, b) => a - b,
  'multiply': (a, b) => a * b
};

const operation = 'add';
const result = actions[operation]?.(5, 3) ?? 'عمل نامعتبر';

مزایای این روش:

  • کد تمیزتر و خوانا
  • قابلیت گسترش آسان
  • عدم نیاز به break مانند switch

2. استفاده از Map

برای موارد پیچیده‌تر، ساختار Map می‌تواند گزینه بهتری باشد:

روش مزیت
شیء ساده ساده و سریع برای موارد پایه
Map پشتیبانی از کلیدهای غیررشته‌ای و ترتیب درج

3. پترن Strategy

برای سیستم‌های پیچیده‌تر، الگوی طراحی Strategy می‌تواند مناسب باشد:

  1. تعریف یک رابط مشترک برای تمام استراتژی‌ها
  2. پیاده‌سازی استراتژی‌های مختلف
  3. انتخاب استراتژی در زمان اجرا

برای یادگیری بیشتر درباره ساختارهای شرطی در جاوااسکریپت می‌توانید اینجا را انتخاب کنید.

4. استفاده از توابع و داینامیک ایمپورت

در محیط‌های مدرن جاوااسکریپت می‌توان از داینامیک ایمپورت استفاده کرد:

const loadStrategy = async (strategyName) => { try { const module = await import(`./strategies/${strategyName}.js`); return module.default; } catch { return fallbackStrategy; } }

این روش به خصوص در برنامه‌های بزرگ بسیار مفید است و امکان بارگذاری تنبل (lazy loading) را فراهم می‌کند.