תכנות מונחה-עצמים – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
←‏כימוס: הרחבה
←‏רקע: הגהה, עריכה
שורה 8:
 
== רקע ==
הפרדיגמה של תכנות מונחה-עצמים צמחה מה[[תכנות פרוצדורלי|תכנות הפרוצדורלי]] והמודולרי שבוסס על שגרות ו[[פונקציה (תכנות)|פונקציות]] שפעלו על [[מבנה נתונים|מבני נתונים]] חופשיים בכל מרחב התוכנה. השיטה הפרוצדורלית יצרה קושי רב, מכיוון שכל שינוי בהגדרת [[משתנה (תכנות)|משתנים]] ב[[תוכנית מחשב|תוכנית]] חייב שינוי בפונקציות שפעלו בכל מרחב ה[[תוכנה]]. והיההיה קשה לאתר באג בתוכנה כיוון שהמשתנה יכול היה להשתנות ממקומות רבים בתוכנה. והיה קשה למחזר קוד, בשל תלויות שלו במשתנים ופונקציות במרחב היישום כולו. ככל שהתוכנה הייתה גדולה ומורכבת הקושי הלך והתעצם, דבר שגרר תחזוקה רבה ואיטיות ומורכבות בפיתוח ככל שהתקדם, וכך, בניגוד למחירי החומרה שכל הזמן ירדו, מחירי התוכנות דווקא האמירו. לפיכך היה צורך לחפש מתודולוגיה חדשה שתפשט ותקל על עבודת התכנות.
 
אחד מהכיוונים לטיפול בבעיה היה ביסוס של פיתוח התוכנה על מודולות, כעין "[[קופסה שחורה (הנדסה)|קופסאות שחורות]]" שניתן להשתמש בהן שימוש משותף ולהעתיקן ליישומים נוספים, בבחינת שימוש חוזר (Reuse) של קוד, ובכך לקצר את תהליך פיתוח התוכנה (דבר שיושם למשל בקובצי [[Dynamic-Link Library|DLL]]). בהסבר פשטני מאוד, תכנות מונחה-עצמים הוא תכנות שמבוסס על יצירת "קופסאות שחורות" בעלות חיים עצמאיים משל עצמן, שאינן תלויות בגורם חיצוני. '''כל דבר בפרדיגמה זו הוא אובייקט''' (וישנן שפות שאף משתנים פרמיטיביים הן אובייקטים). מהתפיסה הזו התפתחה מתודולוגיה המחקה את העולם הממשי שקיימים בו עצמים ותתי-עצמים, שלהם יש תכונות ופעולות משל עצמם. כך, כל תוכנה היא בעצם אוסף היררכי של אובייקטים רבים, שמקושרים אחד עם השני לכדי מערכת גדולה ומתואמת.
 
יתרונה של מתודולוגיה זו היא שליטה בנפחים גדולים של קוד על ידי חלוקה של עצמים לפי קטגוריות, המסייעת למיון וסידור המידע הרב על ידי שיוך פעולות ומאפיינים לאובייקטים, כאשר מאפיינים בעלי משמעות לוגית דומה יכולים לפעול בצורה אחרת בהתאם לאובייקט שאליו הם מתייחסים. לדוגמה, התפיסה האנושית מחלקת את העולם לקטגוריות של דומם, [[צומח]], ו[[בעל חיים|חי]] ו[[אדם]], וכל קטגוריה ראשית מתחלקת שוב לקטגוריות משנה, למשפחות ותתי משפחות. התכונות והפעולות, אף שיש להן משמעות דומה, יכולות לפעול בצורות אחרות בקטגוריות השונות. פעולת ה[[נשימה]], למשל, מתבצעת באופן שונה אצל [[דג]] ואצל [[אריה]], אף על פי שהיא דומה מבחינה לוגית: אצל הדג הפעולה מתבצעת על ידי קליטת [[חמצן]] מהמים באמצעות [[זימים]], ואצל האריה על ידי קליטת החמצן מהאוויר באמצעות ה[[ריאה|ריאות]].
 
== היסטוריה ==