1.1. מהו תכנות מונחה עצמים

תכנות מונחה עצמים היא טכניקה של הנדסת תוכנה, המספקת מספר כלי הפשטה:

  • עצמים (רמת ההפשטה הנמוכה ביותר).
  • מחלקות (רמת ההפשטה החשובה ביותר – מחלקה היא הפשטה של אובייקט)
  • הורשה – שהיא הפשטה מעל מחלקות.
  • גנריות – סוג נוסף של הפשטה מעל מחלקות (ב-C++ הפשטה זו מתבטאת בתבניות).

מטרת מסמך זה היא להכיר לקורא את מנגנוני ההפשטה השונים אותם תכנות מונחה עצמים מספק לנו.

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

היעדים שתכנות מונחה עצמים מציב לעצמו:

  • תוכנה נקייה מבאגים.
  • תוכנה הניתנת לשינויים.
  • Reusability – ניתן להשתמש בחלקים מהתוכנה שוב בתוכניות חדשות.
  • Portability – התוכנה יכולה לרוץ בסביבות שונות.
  • יעילות – ביצועים טובים.

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

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

היכולת המרכזית שגישת התכנות מונחה העצמים מוסיפה לנו מעבר למתודולוגיות האחרות היא הורשה.



מאת: ניצן

Borland style vptr

לפי מה שאני מכיר:
"חסרון בגישה זו: גם כאשר איננו משתמשים ב-dynamic binding – אנחנו משלמים במקום"
לא נכון , עבור מחלקה A שאין לה מתודות דינמיות לא יווצר כלל המצביע, ולמשל עבור מחלקה B שיורשת מA פשוט נוסיף בהתחלה את המצביע, ואחרי הבלוק של A את שאר האינפורמציה של B . וככה לא משלמים על מה שלא משתמשים ועקרונות C++ נשמרים.
מה שכן באמת הcasting קצת יותר מסובך....
שיתוף:
| עוד