» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
תוכנית דוגמא רב השלכתית
דף ראשי  מתקדמים   Callbacks - קריאה לאחור I  תוכנית דוגמא רב השלכתית גרסה להדפסה

תוכנית דוגמא רב השלכתית

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

אובייקטים ממחלקות תלמיד וכלב יכולים להיות רשומים ברשימה המוחזקת על ידי אובייקט מחלקת מורה, ולהיות מיודעים על ידי אובייקט ממחלקת מורה כאשר דבר מה מעניין מתרחש.

 

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

 

כפי שהיה קודם, הודעה באה בצורת עוררות פונקצית callBack() על כל אחד מהאובייקטים ברשימה.

 

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

 

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

 

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

 

התוכנית נבדקה תוך שימוש ב- JDK 1.1.3  תחת Win95.

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

 

 02-12-03 / 22:28  עודכן ,  13-10-03 / 19:42  נוצר ע"י רונית רייכמן  בתאריך 
 רישום תוכנית השלכה כללית - הקודםהבא - חלקי קוד מעניינים של רב השלכתיות 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 4