16.7.2019

Overloading - קשרים בין מחלקות


Overloading - העמסת אופרטורים

מאפשר לתת משמעות\מימוש  משלנו לאופרטור
מגדירים פונקציה מסוג אופרטור לאופרטור המבוקש – בקריאה לאופרטור יתבצע הפעולה המוגדרת

לדוג' 
יש לנו מחלקה של פירות עם פרמטרים ואנחנו רוצים לחבר את 2 הפירות לסלט
-        הגדרנו פונקציה שמקבלת 2 פירות ומבצעת סט פעולות ומחזירה את ההגדרות 
public static salad operator +(frut a, frut b)
        {
            salad s = new salad();
            s.Calories = a.Calories + b.Calories;
            s.Vitamins = a.Vitamins + b.Vitamins;
            s.Nameseld = a.FrutName + " & " + b.FrutName;
            return s;
        }
ההפניה לפונקציה
salad a = f1 + f2;
כשהתוכנה מקבלת את האופרטור + ויש מ2 הצדדים את המשתנה שהוגדר יתבצע הפונקציה אחרת יתבצע + רגיל


מודל = ייצוג מופשט של מציאות כל שהיא
מודל קונספטואלי – מיצג מציאות של מושגים
Domain logic – מימוש הכללים העסקיים של התוכנית


קשרים בין מחלקות
הורשה = is – A  (כלומר זה) נתונים \ פונקציות שמגעים משלב גבוהה יותר במודל
החלה = Has – A   (כלומר יש לו) – מחלקה שמשתמשת בנתונים ממחלקה אחרת

הקשר בין רופא לעובדים זה is-a , כלומר תורשה , כי רופא הוא עובד , – כל הגדרה של עובד קיימת ברופא (אבל לא כל עובד הוא רופא)
לעומת זאת הקשר בין רופא לטיפול זה has-a , כלומר הכלה , כי לרופא יש טיפול , חלק מהנתונים של הרופא קשורים לטיפול אבל לא ניתן להגדיר שטיפול זה רופא




החלה נבצע באמצעות הגדרת אובייקט מסוג מחלקה אחרת כך שהאובייקט הזה מקבל את כל הנתונים מהמחלקה השנייה
לדוג' בתוך מחלקת Union הגדרנו מערך של Team – מה שאומר שבכל מקום במערך (אחרי אתחול) יש את כל אחד מהשדות שהוגדרו במחלקת Team

class Union
    {
       public Team[] teams { get; set; }





אין תגובות:

הוסף רשומת תגובה

MVC

Web api Front end (צד משתמש) שולח http request     כל אתר מכל מכשיר יכול להתחבר ולקבל נתונים (אין אפליקציה) ולא משנה באיזו שפה ה...