תכנות מובנה לעומת תכנות מונחה עצמים
תכנות מונחה עצמים (OOP) ותכנות מובנה הן שתי פרדיגמות תכנות. פרדיגמת תכנות היא סגנון בסיסי של תכנות מחשב. פרדיגמות תכנות שונות באופן ייצוג כל מרכיב בתוכניות וכיצד מוגדרים שלבים לפתרון בעיות. כפי שהשם מרמז, OOP מתמקדת בייצוג בעיות באמצעות אובייקטים מהעולם האמיתי והתנהגותם, בעוד שתכנות מובנה עוסקת בארגון התוכנית במבנה לוגי.
מהו תכנות מובנה?
ההנחה היא ששנת הלידה של תכנות מובנית היא 1970. תכנות מובנה נחשבת לתת-קבוצה של תכנות ציווי. תוכנית מובנית מורכבת ממבני זרימת תוכנית פשוטים, המאורגנים באופן היררכי. הם רצף, בחירה וחזרה. רצף הוא סדר של הצהרות. בחירה פירושה בחירת משפט מתוך קבוצה של הצהרות המבוססות על המצב הנוכחי של התוכנית (לדוגמה לשימוש בהצהרות if) וחזרה פירושה ביצוע משפט עד הגעה למצב מסוים (לדוגמה שימוש בהצהרות for או while). ALGOL, Pascal, Ada ו-PL/I הן חלק משפות התכנות המובנות המשמשות כיום.
מהו תכנות מונחה עצמים?
ב-OOP, ההתמקדות היא בחשיבה על הבעיה שיש לפתור במונחים של אלמנטים בעולם האמיתי וייצוג הבעיה במונחים של אובייקטים והתנהגותם. השיעורים מתארים את הייצוגים המופשטים של אובייקטים בעולם האמיתי. שיעורים הם כמו שרטוטים או תבניות, אשר אוספים פריטים דומים או דברים שניתן לקבץ יחד.למחלקות יש מאפיינים הנקראים תכונות. תכונות מיושמות כמשתנים גלובליים ומשתנים מופע. שיטות במחלקות מייצגות או מגדירות את ההתנהגות של מחלקות אלו. שיטות ותכונות של מחלקות נקראות חברי הכיתה. מופע של מחלקה נקרא אובייקט. לכן, אובייקט הוא מבנה נתונים הדומה מאוד לאובייקט כלשהו בעולם האמיתי.
יש כמה מושגי OOP חשובים כמו הפשטת נתונים, Encapsulation, Polymorphism, Messaging, Modularity ו-Heritance. בדרך כלל, אנקפסולציה מושגת על ידי הפיכת התכונות לפרטיות, תוך יצירת שיטות ציבוריות שניתן להשתמש בהן כדי לגשת לתכונות הללו. ירושה מאפשרת למשתמש להרחיב מחלקות (הנקראות תת מחלקות) ממחלקות אחרות (הנקראות מחלקות על). פולימורפיזם מאפשר למתכנת להחליף אובייקט של מחלקה במקום אובייקט ממחלקת העל שלו. בדרך כלל, שמות העצם שנמצאים בהגדרת הבעיה הופכים ישירות לשיעורים בתוכנית. ובאופן דומה, פעלים הופכים לשיטות.כמה משפות OOP הפופולריות ביותר הן Java ו-C.
מה ההבדל בין תכנות מובנה לתכנות מונחה עצמים?
ההבדל העיקרי בין Structured Programming ל-OOP הוא שהפוקוס של תכנות מובנה הוא לבנות את התוכנית לפי היררכיה של תוכניות משנה, בעוד שהפוקוס של OOP הוא לפרק את משימת התכנות לאובייקטים, שכוללים נתונים ושיטות. OOP נחשב לגמיש יותר מתכנות מובנה, מכיוון ש-OOP מפריד בין תוכנית לרשת של תת-מערכות במקום למבנה את התוכנית בהיררכיה. למרות שהמבנה מספק בהירות מסוימת, שינוי קטן בתוכנית מובנית גדולה מאוד עלול לגרום לאפקט גל של הצורך לשנות מספר תוכניות משנה.