design patterns - Decorator
הי,
כמה שאלות של מתחיל לגבי ה - pattern המעניין הנ"ל:
1. הבנתי שמדובר בעצם ב - wrapper, שמשקף החוצה את הממשק של האובייקט שהוא "מקשט", ומוסיף על זה עוד פונקציונליות. אבל אם עכשיו נוסף feature חדש ל - class שממנו נוצר האובייקט המקושט, הרי שה - wrapper לא ייצא את ה - feature החדש ונצטרך לשנות גם אותו. אני מבין נכון?
2. באותו נושא: ראיתי שבמקומות מסוימים מסבירים את ה - pattern הזה כך שמחלקת ה - decorator יורשת ממחלקת אב משותפת לה ולאובייקט המקושט. להבנתי, זו הדרך לאפשר ל - decorator לקשט כל מחלקת שנורשת ממחלקת האב הזו. אבל, מצד שני, אם מחלקת האובייקט המקושט מוסיפה פונקציונליות שלא קיימת במחלקת האב הזו (נניח פונקציה חדשה שלא קיימת כוירטואלית בממשק מחלקת האב), אז שוב, מחלקת ה - decorator לא תייצא את הפונקציונליות הזו...נראה קצת מגביל ויוצר צימוד בין המחלקות... יש פתרון לנושא? (אם בכלל הבנתי את זה נכון)
3. הבנתי איך אני "מלביש" decorator על אובייקט. איך מסירים decorator? קוראים ל - DTOR שלו?
תודה וחג שמח.
הי,
כמה שאלות של מתחיל לגבי ה - pattern המעניין הנ"ל:
1. הבנתי שמדובר בעצם ב - wrapper, שמשקף החוצה את הממשק של האובייקט שהוא "מקשט", ומוסיף על זה עוד פונקציונליות. אבל אם עכשיו נוסף feature חדש ל - class שממנו נוצר האובייקט המקושט, הרי שה - wrapper לא ייצא את ה - feature החדש ונצטרך לשנות גם אותו. אני מבין נכון?
2. באותו נושא: ראיתי שבמקומות מסוימים מסבירים את ה - pattern הזה כך שמחלקת ה - decorator יורשת ממחלקת אב משותפת לה ולאובייקט המקושט. להבנתי, זו הדרך לאפשר ל - decorator לקשט כל מחלקת שנורשת ממחלקת האב הזו. אבל, מצד שני, אם מחלקת האובייקט המקושט מוסיפה פונקציונליות שלא קיימת במחלקת האב הזו (נניח פונקציה חדשה שלא קיימת כוירטואלית בממשק מחלקת האב), אז שוב, מחלקת ה - decorator לא תייצא את הפונקציונליות הזו...נראה קצת מגביל ויוצר צימוד בין המחלקות... יש פתרון לנושא? (אם בכלל הבנתי את זה נכון)
3. הבנתי איך אני "מלביש" decorator על אובייקט. איך מסירים decorator? קוראים ל - DTOR שלו?
תודה וחג שמח.