הממשק תלוי במערכת
וזה מתבקש, אם יש לך ממשק אחר לכל סוג משתמש. מה שקורה הוא שאתה מחזיק מצביע לממשק, לא את הממשק עצמו, שהוא מחלקה אחרת ובלתי תלויה. שינוי במחלקה הזאת לא משפיע על המצביע, לכן לא משפיע על האובייקט שמקושר לממשק. מצד שני, אתה יכול להתאים לכל אחד את הממשק שלו, ואותו ממשק לכמה מחלקות שונות, די בקלות.
וזה מתבקש, אם יש לך ממשק אחר לכל סוג משתמש. מה שקורה הוא שאתה מחזיק מצביע לממשק, לא את הממשק עצמו, שהוא מחלקה אחרת ובלתי תלויה. שינוי במחלקה הזאת לא משפיע על המצביע, לכן לא משפיע על האובייקט שמקושר לממשק. מצד שני, אתה יכול להתאים לכל אחד את הממשק שלו, ואותו ממשק לכמה מחלקות שונות, די בקלות.