delegation מול inheritance

פפיתור

New member
delegation מול inheritance

שלום רב, בהקשר ניתוח מערכות מידע OO, רציתי לדעת מהו delegation ?? מתי משתמשים בו ומתי משתמשים בהורשה תודה
 

ייוניי

New member
delegation

זהו תהליך שבו אובייקט מסויים "מעביר" סמכות מסויימת שיוחסה לו לאובייקט אחר על ידי קריאה למתודה עליו. (delegation - האצלת סמכות). לדוגמא:
class Sheff { MinimunWageCook _cook; public void makeSteak() { //.. making steak } public void makeSalad() { // boring... _cook.makeSalad(); } }​
השימוש ב delegation ב OOP הוא עצום, לכל אובייקט יש אחריות משלו ויש אובייקטים נוספים שאיתם הוא מתקשר. לפעמים בגלל שינויים בדרישות האפליקציה אחריות עוברת מאובייקט אחד לאחר כשכל אובייקט יכול לבצע משהו בעצמו או להעביר את האחריות לאובייקט אחר איתו הוא מתקשר. inheritance זו תופעה הרבה פחות נפוצה שהשימוש המושכל בה הוא במספר מקרים מצומצם. למעשה כמעט כל שימוש ב inheritance ניתן להחליף ב delegation (קרא על decorator pattern למשל) והתוצאה בד"כ מוצלחת יותר. כך שהורשה היא שלב התפתחותי יותר מאשר עיצוב מוגמר.
 
למעלה