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

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