پرش به مطلب اصلی

Factory

یه الگوی طراحی برای ساختن آبجکت‌ها بدون این‌که خودت مستقیم new بزنی و دقیقاً بدونی کدوم کلاس ساخته میشه.

یعنی ساختنِ آبجکت outsource میشه به یه “کارخونه”.
تو فقط میگی: «داداش یه چیزی از این نوع بهم بده»، خودش تشخیص میده کدوم کلاس باید ساخته بشه.

‍‍```


func NewProvider(providerType string) (Provider, error) {
switch providerType {
case "zarinpal":
return &Zarinpal{}, nil

case "stripe":
return &Stripe{}, nil

case "crypto":
return &Crypto{}, nil

default:
return nil, fmt.Errorf("unknown payment provider: %s", providerType)
}
}