עידו כתב פרויקט לניהול Rebar - רשת דוכנים שמכינה שייקים מפירות.
הבעלים של Rebar רוצים לשדרג שייקים. הם ביקשו מעידו להוסיף לפרויקט את האפשרויות הבאות:
• אפשרות להוסיף כפית זרעי צ'יאה (יאמיי)
• אפשרות להוסיף כפית רוטב שוקולד
• אפשרות להוסיף כפית דבש
עזרו לעידו לבחור את הדרך הנכונה ביותר לעדכון הפרויקט.
א. להוסיף שלושה שדות למחלק ה-Shake עבור כל אחת מהתוספות - צ'יאה, רוטב שוקולד, דבש, ולהוסיף מתודות setters עבור שדות אילו.
ב. להוסיף שלוש מחלקות נוספות ShakeWithChia, ShakeWithChocolate, ShakeWithHoney. כל אחת מן המחלקות תרחיב את המחלקה Shake ותכיל שדה נוסף עבור התוספת.
ג. להגדיר את המחלקה Shake כאבסטרקטית, ולהוסיף שלוש מחלקות נוספות ShakeWithChia, ShakeWithChocolate, ShakeWithHoney. כל אחת מן המחלקות תרחיב את המחלקה Shake ותכיל שדה נוסף עבור התוספת.
ד. להוסיף ממשק IShake שהמחלקה Shake תממש אותו. להוסיף שלוש מחלקות נוספות ShakeWithChia, ShakeWithChocolate, ShakeWithHoney שגם הן יממשו את הממשק IShake. כל אחת ממחלקות אלו תכיל שדה מסוג IShake, ושדה נוסף עבור התוספת.
ה. אף אחד מהעיצובים הנ"ל אינו נכון