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


עקרונות מודל העצמים

עקרונות בסיסיים:

מושגים מתקדמים

 


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

 

להלן פירוט העקרונות:

 

הפשטה Abstraction))

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

 

לדוגמא:

  • מפת עיר מתמקדת ברחובות ובשכונות העיר ומתעלמת מסביבת העיר (המחוז, המדינה) מחד גיסא ומקווי החשמל, המים והביוב בעיר מאידך גיסא.

  • תצ"א של האוניברסיטה מתאר את מבנה האוניברסיטה, אך מתעלם מפירוט החדרים שבכל בניין ובכל קומה.

 

הסתרת מידע (Information Hiding, Encapsulation)

תהליך חלוקת (Compartmentalizing) הרכיבים של הפשטה (Abstraction) לאלו המהווים את   המבנה (Structure) ואת ההתנהגות (Behaviour) שלה. ההסתרה (Encapsulation),  מסייעת  להפריד בין המנשק החוזי (Contractual Interface) של הפשטה, לבין היישום שלה.

לדוגמא:

  • מבנה נתונים מסוג מחסנית. הפעולות לגביו הם Push, Pop, Top בעוד המבנה שלה יכול להיות ממומש בשיטות שונות (רשימה ליניארית, רשימה מקושרת וכדומה).

 

מודולאריות (Modularity)

תכונת מערכת להיות מופרדת (Decomposed) לקבוצה של מודולים מלוכדים (Cohesive) המקושרים באופן רופף (Loosely Coupled).

 

 

הורשה / מדרג (Hierarchy (Inheritance

מדרג הוא דרוג או סידור (Ranking or Ordering) של הפשטות.

שתי ההיררכיות החשובות ביותר במערכת מורכבת הם:

  1. מבנה המחלקה (Class Structure) - היררכית “Is-A”.

  2. מבנה העצם (Object Structured) היררכית “Part-Of”.

הורשה (Inheritance) הוא יחס בין מחלקות שבו מחלקה אחת יורשת את המבנה או ההתנהגות המוגדרים במחלקה  אחרת (Single Inheritance) או במספר מחלקות אחרות (Multiple Inheritance).

הורשה מגדירה היררכיה “Is-A” בין מחלקות בה Subclass יורש מאחר או יותר Superclasses כלליים (Generalized) יותר.

Subclass מיחד (specializes) את ה Superclass שלו ע"י הרחבה (Augmenting) או הגדרה מחדש (Redefining) של המבנה וההתנהגות הקיימים.

 

לדוגמא:

 

 

 

 

סיווג (Typing)

האכיפה (enforcement) של מחלקה, של עצם המונע מעצמים מסוגים ((Types שונים להתחלף    או לכל היותר מאשר להם להתחלף באופן מאוד מוגבל.

Typing מאפשר להביע את ההפשטות, באופן ששפת התכנות בה מממשים אותה, אוכפת את החלטות התכן.

שפת תכנות יכולה להיות Strongly Typed כגון Eiffel

Weakly Typed - כגון C++ או Untyped כגון Smalltalk ועדיין להיחשב כ- Object Oriented.

ברוב המקרים המונחים Class ו - Type הם חליפיים.  

Static Binding או Early Binding פירושו שה Type של כל המשתנים והביטויים נקבעים בזמן הקומפילציה.

Dynamic Binding או Late Binding פירושו שה Types של כל המשתנים והביטויים נקבעים בזמן ההרצה (Runtime).

שפה יכולה להיות Strongly and Static Typed (כגון ADA) או Strongly Typed עם Dynamic Binding (כגון Object Pascal). או כל הצירופים האחרים.

 

 

מקביליות  (Concurrency)

התכונה המבחינה בין עצם שהוא Active לבין עצם שאיננו Active.

במערכת מבוססת על OOD ניתן להתייחס לעולם כמורכב מאוסף עצמים קואופרטיביים,

שחלקם Active ולכן משמשים כמרכזי Activity בלתי תלויים.

 

ברגע שקיימת מקביליות במערכת, חייבים לקחת בחשבון (consider), כיצד עצמים שהם Active מסנכרנים (Synchronize) את הפעילויות (Activities) שלהם זה עם זה וכן עם עצמים שהם לגמרי סדרתיים (Purely Sequential).

 

מימוש של מקביליות יכול להיות תכונה של שפת התכנות או ע"י שימוש בתוכניות ספריה מיוחדות לכך (למשך הספרייה של AT&T עבור C++ מכילה מחלקות Sched, Timer, Task : ואחרים) או ע"י שימוש בפסיקות (Interrupts) הנותן אשליה של בו-זמניות.

 

 

התמדה (Persistence)

התכונה של עצם באמצעותה קיומו (Its Existence) הוא מעבר לזמן ו/או למקום (Transcends Time and/or Space).

דהיינו, הוא ממשיך להתקיים גם לאחר שהיוצר שלו הפסיק להתקיים ו/או מיקום העצם עובר   

ממרחב הכתובות בו הוא נוצר.

למשל עצם  Object Oriented Database מתקיים גם כאשר התוכניות שהפעילו אותו הפסיקו להתקיים, או במערכת מבוזרת, ייתכן ו- עצם עובר ממעבד אחד למעבד אחר.  

 

מושגים מתקדמים:

Polymorphism

Message

Association

Reuse (מחזור)

מנשק מחלקה (Class Interface)


 

בנוסף על העקרונות הבסיסיים הנ"ל, המאפיינים את ה- Object Model ע"פ Booch, קיימים גם המושגים הבאים:

 

Polymorphism (נקרא גםParametric Polymorphism )

  • היכולת לקבל צורות שונות. למשל H2O יכול להיות מוצק, נוזל או גז.  נהג המתקרב לצומת  

  • יכול להגיב לאור אדום, צהוב או ירוק. רוטינת הדפסה יכולה להדפיס טקסט או גרפיקה.

  •  מושג ב Type Theory לפיו שם יכול לציין עצמים של מספר מחלקות שונות שיש להם  Superclassמשותף. לפיכך כל עצם בעל אותו שם מסוגל להגיב לקבוצה משותפת של פעולות בדרכים שונות.

  • קיים גם  Polymorphism Multiple, דהיינו Polymorphism ביותר מפרמטר אחד.

 

(Message (Communication

הפעולה (Operation) שעצם אחד מבצע על עצם אחר. המושגים Message, Method ו- Operation הם חליפיים.

 

איור- מסרים

Association

יחס המציין קשר משמעות (Semantic) בין שני מחלקות.  למשל ורדים ונרות הם מחלקות בלתי תלויות אך שניהם יכולים לשמש (יחד) לקישוט שולחן לארוחה חגיגית.

 

Reuse (מחזור)

ל- reuse שלוש צורות:

1. Sharing (שיתוף): למשל שימוש בטלפון ע"י אנשים שונים או רוטינה הבודקת חוקיות של מספר זיהוי (ID).

2. Copying or Cloning (העתקה): למשל, ייצור אלפי מכוניות מאותו סוג עפ"י אבטיפוס (Prototype) או העתקת קטע קוד לתוכניות שונות.

3. Adjusting (התאמה, הסגלה): למשל, ייצור מכוניות עפ"י אבטיפוס והוספת פריטים שונים (A/C, CD, Spoiler) לכל מכונית, שהם למעשה רכיבים סטנדרטים Reusable הניתנים להרכבה 

בקומבינציות שונות או שימוש בשגרה מתוך ספריה והתאמתה למטרה מסוימת.

 

מנשק מחלקה (Class Interface)

המנשק ((interface של מחלקה נותן את המבט החיצוני ולפיכך מדגיש את ההפשטה תוך הסתרת המבנה וההתנהגות שלו.  המנשק מתחלק לשלושה חלקים:

  1. -Public נגיש לכל ה- clients שלו.

  2. Protected-  נגיש רק למחלקה עצמה, subclasses שלה ומחלקות החברים (friends). (friend של מחלקה היא מחלקה שמותר לה לגשת לחלק ה- private שלה ולכן כמובן גם לחלק ה- protected שלה).

  3. -Private נגיש רק למחלקה עצמה ולמחלקות החברים.

 

 

לסעיף הבא- יחסים סין עצמים...

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


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