Factory Method Pattern
בכל מערכת שגדלה, מגיע הרגע שבו יש פונקציה שמסתכלת על type string ועושה שרשרת if-else ארוכה כדי להחליט איזה Object לייצר. ראיתי אחת כזו ב-Production שהייתה 200 שורות - if type === "pdf", else if type === "excel", else if type === "csv", כל אחד עם דרך יצירה שונה, פרמטרים שונים, ולוגיקת ולידציה נפרדת. כל פעם שהוסיפו Format חדש - פתחו את הפונקציה הזו, הוסיפו else if, שברו שניים מהמקרים הקיימים, וסגרו PR שנדרשה לו שעה של Code Review.
Factory Method פותר בדיוק את זה.
ה-Pattern שייך לקטגוריה של Creational Patterns - Patterns שעוסקים ב"כיצד יוצרים Objects." הבעיה שהוא פותר אינה "Object קשה ליצירה" אלא "הקוד שיוצר Object צמוד מדי לסוג ה-Object." כשיש Coupling כזה, כל הוספת Type חדש גורמת ל-Ripple Effect - שינוי שמתפשט לכל מקום שיוצר Objects מסוג זה. Factory Method שובר את ה-Ripple Effect.