לא הבנתי משהו בהבהרה לגבי התרגיל האחרון

מנהל: The Architect

נעול
Shirley_sw
הודעות: 22
הצטרף: 13:00 12/12/2008

לא הבנתי משהו בהבהרה לגבי התרגיל האחרון

שליחה על ידי Shirley_sw » 19:34 30/01/2009

מה הכוונה ב-
This means that you should be carefull with the public methods you write - They will be used only by you?
אשמח אם תפרטו לי מה הכוונה

yurib
הודעות: 207
הצטרף: 18:30 19/11/2008

שליחה על ידי yurib » 19:45 30/01/2009

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

orankap
הודעות: 67
הצטרף: 14:23 02/12/2008

שליחה על ידי orankap » 20:01 30/01/2009

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

yurib
הודעות: 207
הצטרף: 18:30 19/11/2008

שליחה על ידי yurib » 20:18 30/01/2009

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

רפי_כהן_TA
הודעות: 168
הצטרף: 16:38 05/11/2008

שליחה על ידי רפי_כהן_TA » 14:51 01/02/2009

קבל ח"ח יורי, חתיכת תשובה הבאת
צוות מבוא למדעי המחשב (מתרגל)

נעול

חזור אל “- מבוא למדעי המחשב”