ABA


"Java - לאיזה class שייך ה-method הזה?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #20982 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 20982
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק
   17:15   22.11.14   
אל הפורום  
  Java - לאיזה class שייך ה-method הזה?  
 
   אהלן חברים.

אני בונה תוכנית לעבודת בית של הקורס Software and Programming 2 באוניברסיטה. המטרה של התוכנית מאוד בגדול (לא ניכנס לפרטים כי אין צורך) היא לדמות מעלית.
כבר בניתי את התוכנית והכל עובד. התוכנית בנויה משלושה classes שהם: Building, Elevator, Customer. מעבר לזה יש גם class בשם AppDriver שמקבל נתונים מהמשתמש, יוצר את האובייקטים ומריץ את המעלית.
חשוב להגיד של-Building יש Elevator ו-Customer שה-constructor שלו יוצר.

השאלה שלי היא ככה: ה-method של הפעלת המעלית, שנקרא startElevator, נמצא כרגע בBuilding, אבל פתאום התחלתי לחשוב שהוא יותר שייך ל-Elevator, כי זה הרי אחריות המעלית להפעיל את עצמה, לא? ואז בעיקרון אחרי ההעברה של ה-method ל-Elevator, אני אצטרך לכתוב ב-AppDriver דבר כזה: Building.elevator.startElevator(), במקום Building.startElevator().

מה דעתכם? אני צודק או שאני סתם מגזים ואפשר להשאיר את התוכנית כמו שהיא?

תודה מראש


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  לדעתי אתה לגמרי צודק asco88  22.11.14 20:16 1
  אתה צודק לחלוטין, אחי הדוב 22.11.14 20:16 2
  תודה רבה לשניכם, מאוד עזרתם לי! liranh  22.11.14 21:01 3

       
asco88 
חבר מתאריך 17.6.04
26757 הודעות
   20:16   22.11.14   
אל הפורום  
  1. לדעתי אתה לגמרי צודק  
בתגובה להודעה מספר 0
 
כי אני מניח שברגע שאתה עושה startElevator ממחלקה שהיא לא המעלית, אתה צריך לגשת לשדות ושיטות שיושבות בתוך המעלית (שזה אגב פוגע בעיקרון הEncapsulation).
ואם נסתכל בצורה ציורית יותר, כשאתה מזמין מעלית לבניין שלך, היא מגיעה גם עם לחצן ההפעלה, ולא יגידו לך שאתה אחראי לזה.
אם מחר תחליט להוסיף את המעלית גם לבית פרטי (שזאת מחלקה שעדיין אין לך) או שתירש את מחלקת הבניין (מה שלא רלוונטי להבנתי) או שתיאלץ לממש מחדש את אותה שיטה. (אם לא תעביר אותה כמובן)


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
אחי הדוב
חבר מתאריך 9.11.14
50 הודעות
   20:16   22.11.14   
אל הפורום  
  2. אתה צודק לחלוטין,  
בתגובה להודעה מספר 0
 
   פעולת ההפעלה של המעלית שייכת למעלית עצמה ולא לבניין.

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק
   21:01   22.11.14   
אל הפורום  
  3. תודה רבה לשניכם, מאוד עזרתם לי!  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net