היררכיה - תכנון מחלקות

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

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

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