לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #5  
ישן 09-05-2010, 22:25
צלמית המשתמש של פסטן
  פסטן פסטן אינו מחובר  
 
חבר מתאריך: 14.12.09
הודעות: 9,751
בתגובה להודעה מספר 4 שנכתבה על ידי בן אור שמתחילה ב "הבעיה במחלקה אבסטרקטית היא..."

אין שום בעיה.

אתה רוצה שכל המחלקות D1, D2, D3, ... שמממשות את ממשק I יצטרכו גם לרשת ממחלקה B.
נכון? זה מה שאמרת.

למה? לדוגמה כי אתה רוצה שכל פונקציה לא ממומשת במחלקה שמממשת את ממשק I תקבל
מימוש ברירת-מחדל ממחלקה B. אפשר למצוא עוד דוגמות, אני מניח.

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

כעת במקום להגיד לאנשים "ממשו את ממשק I", אתה אומר להם "תרשו ממחלקה I_B". הם
מקבלים את כל המימושים ממחלקה B דרך ירושה, וחייבים לממש את כל ממשק I כי מחלקה I_B
"מממשת" (במרכאות, כי היא לא באמת מספקת מימושים) את ממשק I.

אין שום בעיה.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #11  
ישן 10-05-2010, 17:00
צלמית המשתמש של פסטן
  פסטן פסטן אינו מחובר  
 
חבר מתאריך: 14.12.09
הודעות: 9,751
בתגובה להודעה מספר 10 שנכתבה על ידי בן אור שמתחילה ב "אהה, עכשיו הפיתרון שלך..."

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

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

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

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 12:43

הדף נוצר ב 0.05 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר