TGViewer
CodeVerse | دنیای برنامه نویسان CodeVerse | دنیای برنامه نویسان @codeverse_dev · 1.06K subscribers
Post #590 382
🧩 Design Patterns in 3 Minutes | Factory Pattern

فرض کن در پروژه یک سیستم پرداخت داری:

if ($gateway === 'zarinpal') {
$payment = new Zarinpal();
}

if ($gateway === 'idpay') {
$payment = new IDPay();
}

if ($gateway === 'stripe') {
$payment = new Stripe();
}

امروز مشکلی ندارد.

اما بعداً می‌شود:

5 Gateway
↓
10 Gateway
↓
20 Gateway

و Controller تبدیل می‌شود به یک جنگل از if/elseها. 😅

اینجا Factory Pattern می‌تواند کمک کند.

مثلاً:

$payment = PaymentFactory::make($gateway);

حالا مسئولیت ساخت Object از Controller خارج شده.

🎯حالا Factory چه مشکلی حل می‌کند؟

به جای اینکه هر جای پروژه بدانی:

«برای ساخت این Object دقیقاً باید چه Classای را new کنم؟»

این تصمیم را به یک نقطه مشخص منتقل می‌کنی.

💡 اما یک نکته Senior-Level:

قابلیتFactory را فقط برای اینکه کدت حرفه‌ای‌تر به نظر برسد استفاده نکن.

اگر فقط دو Class داری و منطق ساخت ساده است، Factory ممکن است فقط پیچیدگی اضافه کند.

موضوع Pattern زمانی ارزش دارد که یک مشکل واقعی در طراحی را حل کند.

@CodeVerse_dev
  • 👍 5
  • ❤ 2
More from @codeverse_dev
  1. Oct 7, 2026👨‍💻 برنامه‌نویسی با AI راحت‌تر شده؛ پس چرا بعضی Developerها خسته‌تر شده‌اند؟ طبق نظرسنجی…
  2. Oct 7, 2026🚨 وردپرس 7.1.3 منتشر شد؛ این یکی را عقب نینداز وردپرس دیروز نسخه 7.1.3 را منتشر کرد؛ یک آ…
  3. Oct 6, 2026شرکت Google وارد یک درگیری جدی با ناشران شده ⚖️ رگولاتور رقابت لهستان اعلام کرده Google را…
  4. Oct 6, 2026اگر Windows 11 داری، قبل از نصب بعضی آپدیت‌ها حواست باشد ⚠️ مایکروسافت تأیید کرده آپدیت پی…
  5. Oct 6, 2026اگر Chrome استفاده می‌کنی، این آپدیت را جدی بگیر ⚡ نسخه Stable مرورگر Chrome برای دسکتاپ ب…
  6. Oct 6, 2026🖥 سازنده محتوایی؟ ویندوزت بدون این ۵ نرم‌افزار نصفه‌ست! خب راستشو بخوای، من خودم تا چند و…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →