תרגיל בג'אבה

tamarhp

New member
תרגיל בג'אבה

אני ממש ממש אשמח אם תעזרו לי להבין ולתכנן כמה דברים בתרגיל שיש לנו בג'אבה. אני מצטערת שזה ארוך, אשמח אם תקראו לפחות חלק ותעזרו לי בחלק מזה.. יש לנו משהו כמו 3 תרגילי תכנות על הראש עכשיו אז אף אחד עוד לא התחיל את התרגיל ואין לי במי להיעזר אז אני פונה אליכם.... בתרגיל אנחנו אמורים ליצור ספר טלפונים (כולל ממשק GUI) עם האפשרויות הבאות: * פונ' טריוויאליות כגון הכנסה, מחיקה, חיפוש וכדו'. * הדפסה ממויינת עפ"י בחירת המשתמש - לפי שם פרטי, שם משפחה, או כתובת. * שמירה וטעינה (ייצוא וייבוא) של ספר טלפונים. * שימוש בקובץ קונפיגורציה phone.cfg שייקבע האם הGUI יהיה אדום, כחול, או בעיצוב רגיל. השאלות שלי: 1. אני בונה מחלקה PERSON שמייצגת בנאדם בספר טלפונים אבל אני צריכה להשתמש במכולה מסויימת כדי להחזיק את כל האנשים. בנוסף, דורשים מאיתנו הדפסה ממויינת ואנחנו אמורים להשתמש באיזשהו Design Pattern בשביל זה. אז - באיזו מכולה להשתמש בשביל להחזיק את האנשים? כלומר - אני יכולה להשתמש בLIST אבל אולי יש משהו יעיל יותר בשביל ההדפסה? ובאיזה Design Pattern להשתמש בשביל להדפיס בצורה ממויינת לפי בחירת הקריטריון? 2. בייצוא וייבוא של קובץ - כשהלקוח רוצה לשמור קובץ הוא בוחר שם לשמירה וצריך לבדוק האם קיים קובץ בשם הזה, ואם כן - לשאול האם להחליף את הקובץ הקיים. איך עושים דבר כזה? כנ"ל לגבי טעינה של קובץ - איך אני בודקת אם קיים קובץ כזה? 3. הGUI צריך להיות אדום, כחול או רגיל, ואמורים להשתמש בAbstract Factory. אני יודעת בכלליות מה זה Factory (מחלקה שמייצגת סוגים שונים של אותו "מוצר" על פי בחירת הלקוח - למרות שלא ממש הבנתי מה ההבדל בין Factory לAbstract Factory), אבל אני לא בטוחה איך מממשים. אני צריכה בעצם ליצור תתי מחלקות שמממשות כפתורים, לייבלים, פאנלים וכו' שמקבלות בקונסטרקטור ערך (אדום, כחול, רגיל) ולפי זה "צובעות" את האלמנט? האם אני צריכה להשתמש ביירושה ממחלקה כלשהי שנקראת AbstractFactory? יש כזו? 4. לגבי קובץ הקונפיגורציה לא הבנתי כלום (אולי זה קשור לעובדה שבחיים לא הזכירו את הנושא הזה בהרצאות), אשמח אם מישהו יעזור לי לפענח מה רוצים מאיתנו: "ספר הטלפונים יהיה קובץ קונפיגורציה בשם phone.cfg. הקובץ יגדיר את סוג הGUI וייבדק בעת העלאת התוכנית. מבנה קובץ הקונפיגורציה יהיה כאוסף שורות טקסט מהצורה: Property = value הProperty היחיד בו אתם נדרשים לטפל הוא GUI_Type, יכולים להיות לו שלושה ערכים: RedGUI, BlueGUI, RegGUI. דוג' לקובץ phone.cfg: GUI_Type = RedGUI לטיפול בסוג הGUI עליכם להשתמש ב AbstractFactory. כמו כן, יהיה לו רק מופע אחד במערכת בכל רגע נתון (Singelton)." * האם תוכן קובץ הקונפיגורציה הוא שורה אחת בלבד (למשל GUI_Type = RedGUI) או "אוסף שורות טקסט"??? * האם בזמן העלאת התוכנה ובדיקת תוכן הקובץ הנ"ל אני צריכה להתייחס אליו כמו אל סתם קובץ טקסט רגיל או שיש משמעות מיוחדת לעובדה שהוא cfg? * איך עושים סינגלטון?!!?!? * אני בעצם צריכה לייצר מחלקת GUI שמממשת גם Abstract Factory וגם סינגלטון?
 
למעלה