האתר הישראלי להנדסת תכנה

דף ראשי | מפת האתר | רשימת מושגים | מקורות נוספים | אודות
מודלי תכן - המשך התפתחות התכן

מפרטי ממשק לעצמים

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

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

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

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

ניתן להגדיר ממשקים בשפת UML בעזרת צורת רישום דומה לזו של תרשים מחלקות. ההבדלים נעוצים בכך שאין מאפיינים ויש להוסיף את ההטפס <> לשם הרכיב.
גישה אחרת היא לעשות שימוש בשפת תכנות להגדרת הממשקים. הנה הגדרת ממשק בשפת Java לתחנת מזג-האויר:



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

מודלי תכן - המשך לתחילת הדף התפתחות התכן
©איתן 2003. כל הזכויות שמורות למערכת המידע איתן