שיעור 4: ISP וממשקים קטנים
ראית פעם מחלקה שמממשת ממשק וזורקת NotSupportedException בחצי מהמתודות? זה הכאב שממשק שמן יוצר: כל לקוח נגרר לתלות בפעולות שאינו צריך, וכל שינוי בממשק שובר גם מחלקות שלא קשורות אליו. בשיעור הזה נפצל ממשק משרדי שמן לממשקי תפקיד קטנים — ונראה איך הקומפיילר הופך לחבר במקום לאויב.
ISP הוא כמו פיצול של תפריט ענק לכמה תפריטים קטנים: מי שרוצה רק קפה מקבל דף אחד קצר, ולא חוברת של 200 עמודים.
- עקרון הפרדת הממשקים (ISP)
- לקוח לא אמור להיות תלוי במתודות שהוא לא משתמש בהן — מפצלים ממשק רחב לכמה ממשקי תפקיד קטנים וממוקדים.
- ממשק שמן
- ממשק שמכריח מימושים לספק מתודות שלא רלוונטיות להם. הסימפטום הקלאסי: מתודות שרק זורקות NotSupportedException.