תיכנון ירושות בצורה נכונה
אני מדבר על C# אבל כמובן רלוונטי לכל שפה
יש לי מערכת לקריאה כרטיסים
אני חושף למשתמש בסה"כ read ו write
לכל כרטיס יש property נוספים כמו שם הכרטיס, גודל הזיכרון , ייצרן וכו'
אובייקטים לדוגמא במערכת
SimCard SdCard MicroCard וכו'
בד"כ ממה שאני יודע נהוג שאת הממשק של המשתמש עוטפים ב interface
כך שנגדיר ICardהמכיל void read void write
הבעיה בINTERFACE שאי אפשר להוסיף לו property
חשבתי שנכון "להכריח" שכל אובייקט CARD , יכיל את הpropery הנ"ל(ייצרן שם וכו') .
ולכן חשבתי להגדיר מחלקה abstract שיורשת מ ICard והיא מכילה את הpropery הנ"ל, ואז כל CARD יורש מ הABSTRACT וממילא יורש מה INTERAFCE
האם זה נכון לעשות כך?
האם אפשר להכריח property ע"י מחלקה abstract?
בנוסף, ישנם תתי פונקציות שהם לא חשופות למשתמש אבל נראה לי נכון שיהיו בכל CARD ,
לדוגמא GetCardXXX , פונקציה לשימוש פנימי של כל CARD ולא חשופה ליוזר
האם נכון לשים אותה כ PRIVATE ב INTERFACE ? או במחלקה ה ABSTRACT?
תודה רבה
אני מדבר על C# אבל כמובן רלוונטי לכל שפה
יש לי מערכת לקריאה כרטיסים
אני חושף למשתמש בסה"כ read ו write
לכל כרטיס יש property נוספים כמו שם הכרטיס, גודל הזיכרון , ייצרן וכו'
אובייקטים לדוגמא במערכת
SimCard SdCard MicroCard וכו'
בד"כ ממה שאני יודע נהוג שאת הממשק של המשתמש עוטפים ב interface
כך שנגדיר ICardהמכיל void read void write
הבעיה בINTERFACE שאי אפשר להוסיף לו property
חשבתי שנכון "להכריח" שכל אובייקט CARD , יכיל את הpropery הנ"ל(ייצרן שם וכו') .
ולכן חשבתי להגדיר מחלקה abstract שיורשת מ ICard והיא מכילה את הpropery הנ"ל, ואז כל CARD יורש מ הABSTRACT וממילא יורש מה INTERAFCE
האם זה נכון לעשות כך?
האם אפשר להכריח property ע"י מחלקה abstract?
בנוסף, ישנם תתי פונקציות שהם לא חשופות למשתמש אבל נראה לי נכון שיהיו בכל CARD ,
לדוגמא GetCardXXX , פונקציה לשימוש פנימי של כל CARD ולא חשופה ליוזר
האם נכון לשים אותה כ PRIVATE ב INTERFACE ? או במחלקה ה ABSTRACT?
תודה רבה