תכנות מתקדם ב-Java/עבודה לפי ממשק: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Johnny Zoo (שיחה | תרומות)
Johnny Zoo (שיחה | תרומות)
אין תקציר עריכה
שורה 1:
{{בעבודה}}
{{תכנות מתקדם ב-Java}}
בפרק הקודם ראינו כיצד יוצרים ומפעילים אובייקט. כעת נראה כמה היבטים נוספים בעקרונות התכנות מונחה העצמים.
שורה 37 ⟵ 36:
 
==עבודה על פי חוזה==
אם מתכנתים על פי עיקרון הכימוס, ניתן ליצור מעין אוסף מוסכם של שיטות ומשתנים שיהיו נגישים ל"לקוח" שמשתמש בקוד שכתבנו. הלקוח אינו מתעניין באופן בו מימשנו את המחלקה שלנו - הלקוח מעוניין במחלקה המסוגלת לבצע ללא טעויות את מה שנרשם ב"חוזה". למעשה, התוכנית היא "קופסא שחורה" עבור הלקוח - הוא אינו יודע תמיד איך היא עובדת, אך כשמכניסים אליה את הקלט הנכון היא מוציאה את הפלט הנכון.

שיטת העבודה הזו מסייעת מאוד, בכמה אופנים: יתרון ראשון, שכבר ראינו, הוא המודולריות - אם לכל מחלקה תפקיד מוגדר, ולא מעניין את הלקוח כיצד הוא מתבצע, אפשר לשנות רכיבים בתוכנית בלי להשפיע על רכיבים אחרים. כמו כן, קטע קוד שנכתב בתוכנית אחת, למשל - אלגוריתם חיפוש במערך, יכול לשמש בתוכניות רבות (נעסוק בנושא בפירוט רב יותר כאשר נגיע לתכנות גנרי). יתרון נוסף נעוץ בכך שקל יותר לבדוק תוכנית קטנה, המורכבת ממחלקות בודדות (או מחלקה בודדת), מאשר לבדוק פרוייקט גדול. כאשר לכל מחלקה תפקיד נתון ניתן לבדוק את תפקודה בנפרד לפני שמרכיבים אותה בתוכנית השלמה, ובכך לחסוך עבודת ניפוי שגיאות קשה על הפרוייקט השלם. לא פחות חשוב מזה - עבודה באמצעות חוזה מאפשרת לכמה צוותים לחלק באופן נוח ונקי את העבודה ביניהם, כאשר עד שלב ההרכבה הסופי - אין תלות בין הרכיבים שמפתח כל צוות.
 
===לסיכום===
ראינו כאן האופן הכללי של התכנות באמצעות "קופסאות שחורות", ואת היתרונות שמספקת צורת התכנות הזו - מודולריות, שימוש חוזר, דרך קלה יותר לבדוק את התוכנית, והמנעות משגיאות. לעיתים קרובות, '''שלב התכנון הוא השלב החשוב ביותר בתוכנית'''. תכנון לא נכון יקשה על העבודה ולא ימצה את היתרונות שפורטו כאן. לכן, כדאי להקדיש לשלב תכנון זמן ומחשבה ראויה, מה שלרוב יחסוך עבודה רבה הרבה יותר בהמשך.
 
{{תכנות מתקדם ב-Java|מוגבל=כן}}