יחסים בין מחלקות
 אתה נמצא ב   [ דף הבית | שטות תכון ויישום תכנה | תכן מונחה עצמים | יחסים בין מחלקות ]


יחסים בין מחלקות

נהוג לסווג את היחסים לשלושה סוגים. סה"כ נמנה ששה יחסים.

 


יחסים בין מחלקות הם בעיקרן מאחד משלושה סוגים:

א. generalization/specialization, דהינו יחס “is-a”.  לדוגמא: המחלקה "ורדים" הוא (is-a) סוג של המחלקה "פרחים".

ב. whole/part, דהיינו, יחס “part-of”.  לדוגמא: המחלקה "עלי כותרת" היא חלק של המחלקה "פרחים".

ג.  Association, לדוגמא: בין המחלקות "ורדים" ו- "נרות" קיים יחס association, כאשר שמים אותם יחד על שולחן לקישוט.

 

בפירוט מתחלקים סוגים אלו לששת היחסים הבאים:

1. -Association יחס של משמעות (semantic dependencies) כמו בדוגמא הנ"ל:

ביחס מסוג  associationקיימים שלושה אופנים של cardinality:

  • One-to-one

  • One-to-many

  • Many-to-many

הדוגמא של "ורדים" ו- "נרות" הוא יחס של many-to-many. בין המחלקות "מוצרים" ו- "מכירות" קיים יחס association של one-to-many: בכל מכירה יכולים להימכר מספר מוצרים וכל מוצר ספציפי נמכר במכירה אחת.

 

2. Inheritance (הורשה)- כפי שכבר הגדרנו (ע"ע עקרונות מודל העצמים) זהו יחס בו מחלקה אחד יורשת את המבנה או את ההתנהגות של מחלקה אחרת (single inheritance).

המחלקה המורישה הוא superclass והמחלקה היורש הוא subclass. דוגמא של multiple  inheritance הוא המחלקה "נכסים" (assets) שהוא ממחלקת "נדל"ן" וכמו-כן הוא ממחלקת "חשבונות בנק", כאשר "חשבונות בנק" הם ממחלקת "עו"ש", ממחלקת "תוכניות חסכון" וממחלקת "מט"ח". 

 

3. Aggregation (צירוף)- בדומה ל aggregation של עצמים, זהו יחס של whole/part כאשר ההכלה היא פיזית או conceptual.

 

4. -Using יחס using בין מחלקות מקביל לקשר client/supplier שראינו אצל עצמים. זהו עידון של יחס מסוג association, בו ברור מי המפעיל ומי המופעל.

 

5. -Instantiation יחס של מחלקה מ- type מסוים המאפשר ל subclass שלו להיות מ type אחר, אשר נקבע ע"י instantiation.  לדוגמא: מחלקה מסוג תור (FIFO) יכול להתממש הן כתור של   integers, הן כתור של names והן כתור של display items. מחלקה כזאת נקראת  parameterized או generic  וללא instatiation אין לוinstances (subclass או objects).

 

6. Metaclass- מוגדר כמחלקה של מחלקה, דהיינו מחלקה אשר ה- instances שלה הם מחלקות. הנתונים (data) וההתנהגות (behavior) שהם class-specific ממוקמים ב- metaclass של המחלקה זה. Metaclass מאפשרים התמחות (specialization) של ההתנהגות של המחלקה ובלעדיהם כל  המחלקות היו מתנהגות באותו אופן. לדוגמא: ה- metaclass של חשבונית (invoice) "מייצר" מחלקות של חשבוניות, דהיינו מגדיר אותם.

 

לסעיף הבא- תפקידי מחלקות ועצמים...

הקודם רמה למעלה הבא


[דף הבית] [למד עכשיו UML] [למה להשתמש] [שטות תכון ויישום תכנה] [סמונים מקובלים] [כלי פיתוח] [מלון מונחים] [גלריית תמונות] [ספריה אור קולית] [קישורים] [ביבליוגרפיה] [על האתר] [מפת האתר]