חברת סטארט-אפ פיתחה פלטפורמה לשירותי רשת. הטבלה שלפניכם מייצגת את היררכיית היישומים (Applications) במערכת.
חברת סטארט-אפ פיתחה פלטפורמה לשירותי רשת. הטבלה שלפניכם מייצגת את היררכיית היישומים (Applications) במערכת.
| מחלקה | יורשת מ- | תיאור |
|---|---|---|
| Application | Object | מחלקת אב – יישום כללי במערכת |
| WebService | Application | שירות רשת (Web) |
| MobileApp | Application | אפליקציה לנייד |
| BackendService | WebService | שירות צד שרת |
| FrontendApp | WebService | שירות צד לקוח |
| DataQuery | MobileApp | כלי לשליפת נתונים באפליקציה ניידת |
סעיף א
שרטטו את עץ הירושה הכולל של המחלקות (Class Diagrams).
סעיף ב
נתון קטע קוד מתוך הפעולה הראשית (main):
Application a1 = new Application();
Application a2 = new FrontendApp();
Application a3 = new MobileApp();
WebService ws1 = new BackendService();
MobileApp ma1 = new DataQuery();
לפניכם שמונה קטעי קוד. עבור כל אחד מהסעיפים יש לציין אם הקוד תקין או לא. אם הקוד אינו תקין – יש להסביר למה הוא אינו תקין ולציין את סוג השגיאה (שגיאת קומפילציה/הידור או שגיאת זמן ריצה). שימו לב: אין קשר בין הקטעים.
WebService ws2 = new Application();WebService ws3 = a2;WebService ws4 = (WebService)a2;WebService ws5 = (WebService)a3;BackendService bs1 = (BackendService)ws1;MobileApp ma2 = (MobileApp)a1;Application a4 = (MobileApp)(new DataQuery());FrontendApp fa1 = (WebService)(new BackendService());
סעיף ג
לכל שירות במערכת יש עלות תפעול משלו (Cost). המטרה היא לחשב את סכום העלויות של כל היישומים שהם שירותי הרשת (WebService).
- באילו מהמחלקות יש להגדיר את הפעולה public double GetCost() המחזירה את עלות התפעול? הסבירו את תשובתכם.
- כתבו פעולה סטטית בשם SumWebServiceCost המקבלת מערך של יישומים ומחזירה את סכום העלויות של כל שירותי הרשת. כותרת הפעולה:
public static double SumWebServiceCost(Application[] arr)
הניחו שהפעולה public double GetCost() מומשה כראוי.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.