שיעור 5: DIP והזרקת תלויות
מחלקה עסקית שיוצרת new SmtpMailer() בתוך עצמה מולחמת לספק אחד: אי אפשר לבדוק אותה בלי שרת מייל אמיתי, ואי אפשר להחליף ספק בלי לערוך אותה. בשיעור הזה נהפוך את כיוון התלות: השירות יהיה תלוי בממשק, והמימוש יוזרק מבחוץ דרך הבנאי — וכך בדיקות והחלפות יהפכו לזולות.
DIP הוא כמו שקע חשמל בקיר: המנורה לא מולחמת לתחנת הכוח — שני הצדדים מתחברים לתקע סטנדרטי, ולכן אפשר להחליף כל צד בלי לגעת בשני.
- עקרון היפוך התלות (DIP)
- לוגיקה עסקית תלויה בממשק מופשט, והמימוש הקונקרטי מוזרק מבחוץ — כך אפשר להחליף תשתית ולבדוק בקלות.
- הזרקת בנאי
- תבנית שבה התלות נכנסת כפרמטר של הבנאי ונשמרת בשדה readonly פרטי — מי שמרכיב את האפליקציה בוחר את המימוש.