מבוא לתכנון מונחה עצמים חלק ב

15 בApril 2013

 

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

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

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

קריאות .

יתרון נוסף (שהוא
קשור ולא קשור) זה קוד קריא. והבנת ההקשרים בדומה לשפה המדוברת , למשל אם נראה
פרוצדורה(פונקציה, מתודה, סברוטינה, כל אחד בשפתו..) שנקראת
Start זה יכול להיות הרבה דברים, אבל אם נראה פרוצדורה שנקראת Start ומופיעה ע”י אובייקט Car נבין מייד שהמשמעות היא
הדלקת מנוע ולא שיגור טיל.

שימוש חוזר.

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

 ממשק המשתמש.

הכוונה כמובן לממשק
המשתמש למתכנת עצמו ולמתכנתים נוספים שהם ה”לקוחות” שלך, אני לא חושף את
משמעות הקוד, המימושים וכו’ אני מספק פונקציות ברמת הרשאה חפשית לדוגמא: אובייקט
מסוג מדפסת, פעולה “התחל הדפסה”. אני לט באמת יודע איך מתבצעת ההדפסה
אני כן יוגע איך מפעילים הדפסה. (לחיצה על כפתור, קריאה לפונקציה, או פרופרטי) כל
היכולת הזאת מסתכמת במילה אחת
Encupsulation.

קוד קצר.

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

 

 

הוסף תגובה
facebook linkedin twitter email

Leave a Reply

Your email address will not be published. Required fields are marked *

תגובה אחת

  1. don.Net16 בApril 2013 ב 13:23

    יפה , אהבתי. הייתי מוסיף תחזוקה ומדולריות

    Reply