INTERFACE בשפת c#

מיס פטל

New member
INTERFACE בשפת c#

טוב, אז יש לנו אינטרפייס class. (אני מדברת על שפת c#) אני מבינה מה הוא בפועל, אבל לא בעקירון. ז'תומרת - בסדר, הוא לא מממש אף פונקציה, וכל היורשים ממנו חייבים לממש את כל מה שהגדיר. אבל מה הקטע שלו? למה לא מגדירים בו על הפונקציות אם הן public or private? ולמה אסור שיהיה בו משהו סטטי? (משתנה או פונקציה). וחוץ מזה, אני יכולה סתם להגדיר class, ופשוט לא לממש חלק ממנו, ולהגדיר אותו אבסטרקטי, אז במה האינטרפייס שונה מהותית? ותודה מראש, פטל.
 

itaym02

New member
הבר

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

adam222

New member
WOW איזה כיף לראות אותך כאן

מצאתי לך מאמר קצר המתקרא "Recommendations for Abstract Classes vs. Interfaces" <שנראה אותך כאן יותר
>
 

סומבודי

New member
הגדרת הממשק:

הממשק הוא המכנה המשותף לעצמים שבלעדי הממשק לא היה להם מכנה משותף. לדוגמא: הממשק IDisposable מייצר מכנה משותף למחלקות בלתי קשורות, ע"י מתודת ה-Dispose המיועדת לשחרור מנוהל של משאבי מערכת בלתי מנוהלים. למחלקות שמממשות את הממשק האמור אין members משותפים, לכן יהיה חסר טעם ליצור מחלקת אב או אבסטקרטית. דוגמאות נוספות: IEnumerable, IComperable. IEnumerable מספקת מתודה לאיטרציה על סדרת אובייקטים. האובייקט המממש אותה יכול להיות מסוג כלשהוא עם שדות כלשהם, והוא מגדיר בעצמו כיצר תתבצע האיטרציה על איבריו. וכן הלאה.
 

bafoboy

New member
מבחינתי

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

oketz1

New member
הייעוד המרכזי של ממשקים הוא

לצורך "הורשה מרובה" הריי ב C# אין הורשה מרובה ,לכן ניתן לעקוף זאת על ידי הורשה נניח מקלאס אחד + עוד כמה וכמה ממשקים.
 
למעלה