Design Pattern
יש לי איזו תקיעה מחשבתית בפתרון בעיה מסויימת ואשמח לשמוע דעות והצעות. הסיטואציה הנוכחית היא שיש לנו שני ממשקים:
יש לי איזו תקיעה מחשבתית בפתרון בעיה מסויימת ואשמח לשמוע דעות והצעות. הסיטואציה הנוכחית היא שיש לנו שני ממשקים:
interface I1 { // does things... } interface I2 { void actOn(I1 someImplementationOfI1); }
בנוסף יש לנו מחלקה שמגיעים לידיה שני אובייקטים - האחד תומך I1 והשני I2 והיא מבצעת את הקריאה למתודה המתוארת של I2 בהתאם לכך. הבעיה היא שבסיטואציות מסויימות אני אצטרך שיישום ספציפי של I2 יוכל לגשת (במהלך הרצת המתודה actOn) ליישום ספציפי של I1 באם האובייקט שהגיע שייך אליו ואם לא אז לבצע פעולות אחרות על I1 בהתאם. כמובן שאני מחפש פתרון OO ללא שימוש ב Reflection או בדיקות טיפוס בזמן ריצה. הפתרון של visitor שהוא בד"כ לא רע למצבים הללו לא מתאים לי בגלל שספציפית לא נוח לי עם העובדה שכל יישום חדש של הממשק יגרור שינוי בממשק של ה visitor (מה שבד"כ קורה ב DP הזה). על mediator חשבתי קצת אבל לא הגעתי עד הסוף איתו, אולי זה אפשרי... רמז, הכיוון הכללי שלי הוא לבצע "היכרות" מוקדמת בין היישום הספציפי של I1 ליישום I2 הספציפי המתאים לו אבל עדיין יש פה עניין בעייתי של יצירת האובייקטים וכו'... בהצלחה