נהוג לסווג את היחסים לשלושה
סוגים. סה"כ נמנה ששה יחסים.
יחסים בין מחלקות
הם בעיקרן מאחד משלושה סוגים:
א.
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) "מייצר" מחלקות של חשבוניות, דהיינו מגדיר אותם.
לסעיף הבא- תפקידי מחלקות
ועצמים...