הזרקת תלות (DI) היא דפוס עיצוב שמסיר את התלות מקוד התכנות כך שיהיה קל לנהל ולבדוק את האפליקציה. הזרקת תלות הופכת את קוד התכנות שלנו לחיבור רופף. כדי להבין טוב יותר את ה-DI, בואו נבין תחילה את בדיקת התלות (DL):
בדיקת תלות
בדיקת התלות היא גישה שבה אנו מקבלים את המשאב לאחר דרישה. יכולות להיות דרכים שונות להשיג את המשאב, למשל:
A obj = new AImpl();
בצורה כזו, אנו מקבלים את המשאב (מופע של מחלקה A) ישירות על ידי מילת מפתח חדשה. דרך נוספת היא שיטת המפעל:
A obj = A.getA();
בדרך זו, אנו מקבלים את המשאב (מופע של מחלקה A) על ידי קריאה לשיטת המפעל הסטטית getA().
לחלופין, אנו יכולים לקבל את המשאב על ידי JNDI (ממשק מדריך שמות של Java) בתור:
מחרוזת השווה java
Context ctx = new InitialContext(); Context environmentCtx = (Context) ctx.lookup('java:comp/env'); A obj = (A)environmentCtx.lookup('A');
יכולות להיות דרכים שונות להשיג את המשאב כדי להשיג את המשאב. בואו נראה את הבעיה בגישה הזו.
בעיות של בדיקת תלות
יש בעיקר שתי בעיות של בדיקת תלות.
הזרקת תלות
הזרקת התלות היא דפוס עיצובי שמסיר את התלות של התוכניות. במקרה כזה אנו מספקים את המידע מהמקור החיצוני כגון קובץ XML. זה הופך את הקוד שלנו לחיבור רופף וקל יותר לבדיקה. במקרה כזה נכתוב את הקוד כך:
class Employee{ Address address; Employee(Address address){ this.address=address; } public void setAddress(Address address){ this.address=address; } }
במקרה כזה, מופע של מחלקה Address מסופק על ידי מקור חיצוני כגון קובץ XML, או על ידי שיטת בנאי או קובע.
רשתות וסוגים
שתי דרכים לבצע הזרקת תלות במסגרת אביב
מסגרת אביב מספקת שתי דרכים להחדיר תלות
- על ידי קונסטרוקטור
- בשיטת Setter
נושאים קרובים בהזרקת תלות באביב
הזרקת תלות על ידי בנאיבוא נראה איך נוכל להחדיר תלות לפי בנאי.
הזרקת תלות לפי שיטת מקבע
בוא נראה איך נוכל להחדיר תלות לפי שיטת קובע.