חנות הפרחים של מושניק

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

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

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

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

2 לייקים

מה שכתבת פה. 20202020

אני ממליץ להגיש 2 פתרונות – אחד עם מחלקות ואחד בלי :slight_smile:
באופן כללי השימוש בירושה אמור להיות נדיר יחסית, וקשה יחסית לתת דוגמאות שלא כוללות מימוש של מערכת בינונית־גדולה.

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