שאלה בקשר לירושה

inferno3

New member
שאלה בקשר לירושה

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

dove2

New member
לא ממש הבנתי את הסיבה למחלקה A

לא ממש הבנתי את הסיבה למחלקה A. עם זאת, אם זה עוזר לך בהבנה לוגית של התוכנית (וזה חשוב מאוד) אז בדר"כ העלות של עוד רמה בהורשה הוא זניח. אתה צריך להבין מה המחירים ותחליט לבד- * בפונקציה בונה ופונקציה הורסת. עלות של עוד קריאה לפונקציה, וכן עדכון של הפוניטר הוירטואלי לרמה הנכונה. בדר"כ זה יחשב לעלות זניחה. * הקוד יתנפח קצת כי יש בו עוד פונקציות ועוד טבלה וירטואלית. בדר"כ זה יחשב לזניח. * קריאה לפונקציה וירטואלית - יגיע ישר לרמה המתאימה (במימוש הכי תחתון) ללא קשר לרמות הירושה - כלומר ללא עלות. *קריא הלפונקציה רגילה - יגיע ישר לרמה המתאימה (במימוש לפי סוג המצביע) ללא קשר לרמות הירושה - כלומר ללא עלות. הבהרה לגבי "זניח" - התיחסות לתכנות אפליקצית דסקטופ רגילה, ובהנחה שבנית האובייקט איננה בתוך לולאה המתרחשת 1000000 פעמים בשניה, או שפתאום אתה מוסיף 100 רמות לכל המחלקות שלך בתוכנית. אקיצר ב"מידתיות". בתחום RT יכול להיות שיספרו לך כל קלוק וכל בית זכרון והמונח "זניח" פשוט לא קיים שם.
 

inferno3

New member
הבהרה בקשר למחלקה A

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