CodeVerse | دنیای برنامه نویسان
🧩 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
3 · 380 ·