Ho diverse classi Parent
e Child1
... Child9
implementate in Java. Parent
è una classe astratta, contenente tutte le variabili comuni delle classi figlie (molto, che è il motivo principale per cui ho creato Parent
una classe astratta e non un'interfaccia), alcuni metodi astratti e alcuni implementati.
Alcune delle classi figlie hanno metodi personalizzati che sono specifici per loro. Così spesso mi trovo a chiamare un metodo figlio usando downcasting:
Parent p = new Child1();
((Child1) p).child1SpecificMethod();
In qualche modo ho la sensazione che questa sia una cattiva pratica OOD, ma non sono del tutto sicuro che sia questo il vero rispettivamente il modo in cui migliorare il design.
- Modifica - Quello che probabilmente dovrei cambiare comunque è il fatto che io uso la classe Parent per organizzare molte (per ora) variabili comuni, rendendole membri (o un oggetto contenitore) delle classi concrete.