ממשק (תכנות) – הבדלי גרסאות

נוספו 294 בתים ,  לפני 9 שנים
==ממשקים נפוצים==
 
* '''IImmutable''' - ממשק שבא להבטיח שלא יהיה ניתן לשנות את המידע שאובייקט מכיל בתוכו. דוגמה לאובייקט כזה הוא הטיפוס String [[סי שארפ|בשפת C#]]. טיפוס זה מייצג מילה, ומורכב ממערך של אותיות. אין אפשרות לגשת לאינדקס של אות מסוימת במילה, אינדקס אפס למשל עבור האות הראשונה במילה, ומשם לשנות את האות. טיפוס נתונים זה ניתן לשרשור (חיבור של מילים) או להשמה מחדש, אבל כאמור אין אפשרות לגשת לאות מסוימת במילה ולהחליפה באות אחרת.
* '''IComparable''' - ממשק שמבטיח שהאובייקט הוא בר-השוואה יחסית לאובייקטים אחרים מאותו סוג. למשל הטיפוס int מקיים את הממשק, ולפיכך ניתן להשוות בין מספר שלם אחד למשנהו. הממשק מכיל רק מטודה אחת בשם CompareTo והיא מחזירה אחד משלושה ערכים. אם הערך המוחזר הוא 1- אז האובייקט שמשווה את עצמו לאובייקט אחר כפרמטר - קטן מהאובייקט המושווה. אם הערך שווה לאפס אז שני האובייקטים שווים, ואם הערך הוא 1+ אז המצבהאובייקט ההפוךהמשווה מהמצבגדול הראשוןמהאובייקט מתקייםהמושווה.
דוגמה לקוד ב-C#:
<source lang="text">
}
</source>
בפקודת ההדפסה הראשונה (Console.WriteLine היא פקודה ב-C# שגורמת לטקסט להיות מוצג על המסך, הדבר מכונה הדפסה למרות שלא מדובר בהדפסה של ממש), שואלים למעשה את a אם הוא קטן מ-b. מאחר והתוצאה היא 1- הכוונה לאמת.{{ש}}
בפקודת ההדפסה השנייה, שואלים את b אם הוא קטן מ-a. מאחר והתוצאה היא 1 הכוונה לשקר (b נמצא אחרי a על סרגל הצירים).{{ש}}
בפקודה ההדפסה השנייה, שואלים את a אם הוא קטן מ-c. במקרה זה הם שווים ולכן התוצאה היא 0. (אין הכרעה מי יותר גדול).
* '''INotifyPropertyChanged''' - ממשק שבא להבטיח שאובייקט יעדכן את הסביבה שלו כאשר שדה כלשהו שלו משתנה. הממשק חשוב לטכנולוגיית [[WPF]] ול-Binding. אם לאובייקט יש למשל שדה בשם FirstName והוא מוצמד לשדה טקסט של TextBlock, והאובייקט עונה על חוזה (ממשק) זה, אז ברגע שישתנה השדה שלו גם הטקסט על הפקד ישתנה. במילים פשוטות, שינוי של ערך בזיכרון מעדכן את ממשק המשתמש על השינוי שנעשה בו.
 
 
3,779

עריכות